#​493 — July 4, 2023

Read on the Web

RegExp’s

1
v

Flag with Set Notation and Properties of Strings — The capability of regexes in Node has been turned up a few notches, especially in the support for, and manipulation of, Unicode character sets (for example, you can now do things like ‘match all Greek symbols except π’). The post is from 2022 but we’ve been sitting on it as it’s taken till now for it to be supported.

Davis, Scherer. and Bynens

Setting Expectations for the Node.js Test Runner — An update on Node’s new test runner (stable since Node 20.0) from a TSC and core team member. He explains why an official test runner was introduced and how it tries to strike a balance between being powerful and minimal.

Colin J. Ihrig

Enterprise UI Development: Testing & Code Quality — Managing or migrating large apps and codebases? This video course covers what you need to know to scale efficiently whilst maintaining code quality. Covers unit testing, CI pipelines, mocking, code coverage, and more.

Frontend Masters sponsor

CommonJS is Hurting JavaScript — An interesting take on Node’s default module system, covering its history, its shortcomings, and the trickiness of managing both CommonJS and ES modules at once. Unsurprisingly, Andy wants us aboard the ESM train ASAP and to leave CommonJS at the station.

Andy Jiang (Deno)

Tangerine: DNS over HTTPS for Node.js — A drop-in replacement for

1
dns.promises.Resolver

that uses Undici to perform DNS requests over HTTPS, complete with built-in retries, timeouts, caching, and the ability to abort requests.

Forward Email

ASIDES:

A Massive Bug at the Heart of the npm Ecosystem? — In short, package manifests and their actual contents aren’t necessarily aligned and this can be manipulated by bad actors into even catching out some security tools.

Darcy Clarke

The Register covered the story too, if you prefer their punchy writeups.

🚨Node 16 Is Hitting EOL on Sep 11 🚨 Need to Upgrade Fast? — Let us help with your Node upgrade. Collaborate with the @JSUpgrade team and upgrade your dependencies now 🚀

UpgradeJS | JavaScript Services sponsor

IP to Timezone: The 30 Second Way (on Netlify) — If you’re using Netlify’s Edge Functions, there’s a straightforward way to grab the user’s location right at your fingertips.

Remy Sharp

How to Add Playwright Tests to Your Pull Request CI with GitHub Actions

Liran Tal

🛠 Code & Tools

rrule.js: Work with Recurrence Rules for Calendar Dates — iCalendar is a data format for representing calendars and schedules, and RRULE is its way to define recurring events. rrule.js allows you to work with such rules, and has an amazing ‘playground’ style homepage to show it off.

Jakub Roztocil

Simple Statistics: Statistical Methods in Readable JS — A lot of the functions are quite simple, but the API is easily understood and covers areas like averages, deviations, correlation, and randomness.

Tom MacWright

Camaro: A High Performance XML to JSON Converter — Uses bindings to pugixml, a fast C++ XML parser.

Tuan Anh Tran

📰 Classifieds

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

🐦 If you have any tweets left in your quota, @codewisdom is an account we’ve been running for years featuring quotes from all the greats, like Grace Hopper and John Carmack.

📗 Domain-Driven Design with Go is a new Packt book from Matthew Boyle covering one of the industry’s most sought-after developer skills. (And if you are a Go developer, we have a Go newsletter for that, too.)

We’re experimenting, but Classifieds is a new way to share projects or services you may find useful or to promote your own, with a mix of free and paid options.

We’ll share more info about them soon.

🎁 A Bonus Item

NocoDB: An Open Source Airtable-a-Like — Airtable is a popular (though commercial) spreadsheet/database-hybrid service, but this is a good looking and mature open source pastiche (‘clone’ just doesn’t sound appropriate with something so well made).

nocodb team


0 Comments

Leave a Reply

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