#454 — September 13, 2019 |
JavaScript Weekly |
V8's Work on a Lighter V8 — V8 Lite has been a project aimed at reducing V8’s memory usage. Initially it was going to be a separate mode of V8 but many improvements have been able to come over to regular V8 too. Here’s a look at some of the key optimizations and the actual benefits to real workloads. Mythri Alle, Dan Elphick, and Ross McIlroy (V8) |
Moving Your JavaScript Development to the Terminal on Windows — If you’ve recently taken a look at Windows after becoming comfortable with macOS or Linux, this is for you. It’s a very detailed look at creating a powerful and elegant terminal-based development experience on Windows 10 using WSL and more. Burke Holland |
All-In-One Visual Testing and Review Platform — Replace time-consuming manual QA to catch visual UI bugs automatically. With Percy, you can test your UI across browsers and responsive widths on every pull request for continuous visual coverage. Percy sponsor |
Metronomes in JavaScript — An interesting experiment in comparing the efficacy of async functions, Web Workers, and using the Web Audio API’s clock for scheduling things precisely. Monica Dinculescu |
Lists of New ECMAScript Features by Version — This is pretty neat. Short and sweet lists of new ES features (with basic examples) that were introduced in ES2015 (a.k.a. ES6), ES2016, ES2017 and so on. Dietmar Aumann |
Immer 4.0: A Way to Work with Immutable State in JS — A popular package for working with immutable state in a convenient way. You apply changes to a draft state object and the mutations are applied to a state resulting in a new one. immer |
💻 Jobs |
Full Stack Engineer — Expensify seeks a self-driven individual passionate about making code effective, with an understanding of algorithms and design patterns. Expensify |
Find a JavaScript job through Vettery — Make a free profile, name your salary, and connect with hiring managers from top employers. Vettery |
📘 Articles & Tutorials |
Let's Generate a Million Digits of Pi in 9 Lines of JavaScript — BigInt support makes this possible. Andrew Jennings |
A Re-Introduction to Destructuring Assignment — Destructuring assignment, introduced in ES6, provides an interesting way to dig into arrays and other objects to withdraw values more directly. Laurie Barth |
A Much Faster Way to Debug Code Than with Breakpoints or console.log — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive. Wallaby.js sponsor |
Using Stefan Baumgartner |
The 5 Big Features of TypeScript 3.7 and How to Use Them — It’s due in early November. Tim Perry |
▶ A 6 Hour React Native 'Crash Course' for Beginners — It’s slow going at first, but that’s because it’s truly aimed at beginners. It’s amazing how much is included here, though, and it’s well recorded too. Maximilian Schwarzmüller |
It’s Not Wrong That Henri Sivonen |
X3D: Declarative 3D for the Modern Web — A look at X3D and how it offers a simple declarative approach for including 3D visualizations into web pages. Adrian Sureshkumar |
How Taiko Compares to Other Browser Automation Tools ThoughtWorks - Taiko sponsor |
Angular Dependency Injection Tips Armen Vardanyan |
▶ 11 Talks from JSFoo VueDay 2019 — Talks from a Vue conference that took place in India two weeks ago. YouTube |
🔧 Code & Tools |
nanoSQL 2: A Universal 'Database Layer' for Client, Server and Mobile — Basically an abstraction for any JavaScript developers who want a database in their app. It can use numerous actual databases behind the scenes, including localStorage, IndexedDB, RocksDB, Redis, DynamoDB, ScyllaDB and SQLite. It claims to be like “Lego™ for databases”. Scott Lott |
React Suite 4.0: A Suite of 'Sensible' UI Components — A set of components that’s been under active development for a couple of years now. Supports React 16+, uses TypeScript, and they work on all major browsers. Components include things like buttons, modals, drawers, navigation bars, form input fields, tables, calendars, and more. GitHub repo. HYPERS |
Spacekit: A Library for Creating 3D Visualizations of Space — Here’s an example. Ian Webster |
Headroom.js: Hides Your Page Header Until Needed — A pure JS widget for hiding elements until needed (for example, show your page header when scrolling up). Nick Williams |
Automated Code Reviews for JavaScript — Set standards on coverage, duplication, complexity, and style issues and see real-time feedback in your Git workflow. Codacy sponsor |
Storytime: Tell Stories About Pieces of Code — This is hard to explain without a demo, so check out this explain demonstrating how React Fiber works. Storytime |
Emoji Button: A Vanilla JavaScript Emoji Picker — Turns a button element into an emoji picker (similar to that some operating systems provide). Joe Attardi |
Filesize.js: A Library to Create Human Readable File Size Strings — For example: Jason Mulligan |
|
🐦 An interesting Twitter thread... |
Kyle Simpson, the author of YDKJS, has been thinking about some pain points when using asynchronous functions, particularly in relation to being able to cancel their execution when circumstances change. The whole thread is an interesting read, complete with people making suggestions of their workarounds. We'd be pretty keen to link to any articles or opinion pieces covering this topic if you have any spare time this weekend ;-) |