Plus Electron 17, V8 9.9, and writing a printer driver in JavaScript? |

#​575 — February 4, 2022

Unsubscribe  |  Read on the Web

JavaScript Weekly

Writing a Printer Driver in JavaScript“Writing a printer driver in JavaScript sounds ridiculous,” starts the author, and while the definition of ‘driver’ is arguable here (it's more a filter?), this is nonetheless an interesting story and solution to the author's problem.

Dan Pastusek

Babel 7.17.0 Released — Now that the decorators proposal has stabilized, Babel includes parse and transform support for them, if you want to get playing. The ‘v’ flag proposal for regexes has also been implemented.

Babel Team

ButterCMS Melts into Your JS App:
$ butter.post.list()
— ButterCMS is your content backend. Enable your marketing team to update website + app content without needing you. Try the #1 rated Headless CMS for your JS app today. Free for 30 days.

ButterCMS sponsor

The Fetch API is Coming to Node Core (and Why to Care) — Support for the Fetch API (as commonly used browser-side for fetching resources) has been merged into Node.js and will be available behind a --experimental-fetch flag until, hopefully, being enabled by default in Node 18+.

Yavor Georgiev

Memory Leaks: The Forgotten Side of Web Performance — An even-handed take on the importance of memory leaks, even though the “effort-to-payoff ratio” is often seen as “disappointingly high”.

Nolan Lawson

IN BRIEF:

RELEASES:

MDX 2.0 – Markdown + JSX = ❤️
Partytown 0.3 – Take third party scripts off the main thread.
Mongoose 6.2.0 – MongoDB object modelling library.
Recoil 0.6 – Alternative React state management.
Commander.js 9.0 – Node CLI framework.
CKEditor 5 v32.0 – Rich text editor framework.
ESLint 8.8.0

💻 Jobs

Senior Web Developer (Node/ReactJS) - Remote — Millions get inspired and plan adventures with our apps. To help us make komoot.com the place to go to plan outdoor adventures, we’re looking for a one of a kind Web Developer to join our team.
Komoot

Senior JavaScript Engineer — Join our dev team and help develop, test, document and maintain our JS driven web applications.
Civey

Toptal: The World’s Top Companies at Your Fingertips — We connect developers like you with exclusive clients that include Fortune 500 companies and Silicon Valley startups. Apply now.
Toptal

📒 Articles & Tutorials

Speeding Up VS Code Extensions in 2022 — One of those ‘niche but interesting’ posts that digs into the underlying architecture of VS Code and a must-read for anyone considering making their own extension.

Jason Williams

▶  Your Weekly Source for Conversations on the Art & Practice of Software — Ben Popper, Cassidy Williams & Ceora Ford explore what it means to work in software, and how code is reshaping our world.

The Stack Overflow Podcast sponsor

Improving JavaScript Bundle Performance With Code-Splitting — Looks at the benefits and caveats of code-splitting and how page performance and load times can be improved by dynamically loading expensive, non-critical JavaScript bundles.

Adrian Bece

What Web Frameworks Solve And How To Do Without Them — Dives deep into a few technical features that are common across frameworks, and explains how some of the different frameworks implement them and what they cost.

Noam Rosenthal

Use Streams to Build High-Performing Node Apps — Using the stream module in Node.js to your advantage.

Deepal Jayasekara

Connect a Chatbot to Popular Messaging Channels — Learn the easy way to connect a chatbot to Telegram, Messenger, Twilio, Smooch, Vonage, Slack, and Microsoft Teams.

Botpress sponsor

How To Create, Test and Deploy a SPA with Vue 3, Vite and Pinia
Andrei Rusu

▶  The Story of React (in 10 Minutes)
ui·dev

Preventing Smooth Scrolling with JavaScript
Kilian Valkhof

🛠 Code & Tools

Sigma 2.2: A Graph Drawing Library — A mature library (we first linked it in 2015!) aimed at use cases where you have giant graphs containing thousands of nodes and edges that you need to render quickly. Some good examples here. GitHub repo.

Alexis Jacomy

A-Frame 1.3: A Framework for Building WebVR Experiences — A web framework for building virtual reality experiences that work on Vive, Rift, Quest, as well as desktop and mobile platforms, including in the browser (as the demos here show).

A-Frame VR Team

Electron 17 Released — The popular cross-platform desktop app framework gets key dependency bumps with Chromium 98 support, Node 16.13.0, and V8 9.8.

Michaela Laurencin and Keeley Hammond

Pulumi: Developer-First Infrastructure with JavaScript

Pulumi sponsor

Hotkey 2.0: Trigger an Action on an Element When a 'Hotkey' is Pressed — Use Hotkey, set the data-hotkey attribute on your elements, and you get keyboard shortcuts. v2.0 just dropped. If it's good enough for GitHub, it's good enough for us!

GitHub

imask.js 6.4.0: A Vanilla JavaScript Input Mask — Rather than validate the syntax of input fields, how about preventing users from even entering invalid values?

imaskjs

lite-youtube: A Web Component That Renders YouTube Embeds Faster — It’s the Shadow DOM web component version of Paul Irish’s lite-youtube-embed, with keyboard accessibility and some other nice features.

Justin Ribeiro

😍 And finally..

WebVM.io takes you straight to a Web-based 'server-less' virtual Linux environment running directly in your browser. It's powered by the JavaScript and WebAssembly-based CheerpX x86 virtualization engine. While it's not a JavaScript project exactly, it's a neat demonstration of how far Web technology has come. It has Node v10.24.0 'installed' if you want to try that, but beware it takes a good 20 seconds to load on my machine.

Here's a write-up about how it works, if you want to learn more.

Note: Probably one for desktop users only due to the resources and performance needed.

o