#575 — February 4, 2022 |
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 ‘ Babel Team |
ButterCMS Melts into Your JS App: 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 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 = ❤️ |
|
📒 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 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 |
▶ The Story of React (in 10 Minutes) |
Preventing Smooth Scrolling with JavaScript |
🛠 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 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. |