#438 — May 24, 2019

Read on the Web

📝 No huge news this week (unless you're an Ember fan — and you should be!) but lots of neat bits and pieces to skim — enjoy :-) Your editor, @peterc.

JavaScript Weekly

Functional JavaScript: How to Use reduce for More Than Just Numbers — Eric Elliott calls it “one of the most versatile functions that was ever discovered” but a lot of developers struggle with reduce beyond basic use cases. If that includes you, this tutorial goes into more depth.

James Sinclair

Pixi.js 5.0: Create Beautiful 2D Web Experiences — Boasts the ‘fastest, most flexible 2D WebGL renderer’ to let you take advantage of hardware acceleration without getting involved in WebGL or 3D concerns. Check out demos for what the code looks like and what you’d use it for. There’s also a Pixi Playground for quickly crafting your own experiments.


Get the Fastest App Deployments. Get Started Free — Unlike most Continuous Integration (CI) solutions, Buddy only re-builds the parts of your application that have changed and deploys your updates in seconds to any app store. Start building better apps faster with Buddy.

Buddy sponsor

Tornis: Watch and Respond to Changes in the Browser's Viewport — A JavaScript library that tracks pointer position, viewport size, scroll position, etc. and lets you perform actions based upon them.

Robb Owen

Node 12.3 Released with WebAssembly Module Support — It’s experimental, but use --experimental-wasm-modules to be able to do, say, import './module.wasm'. Here’s some documentation on how they work if you want to give it a try at this early stage.

Node.js Foundation

WebAssembly at eBay: A Real-World Use Case — Notes on how the eBay engineering team approached building a better barcode scanner using WebAssembly to replace a pure JavaScript version.

eBay Engineering

JavaScript Clean Code: Some Best Practices — You might not sign up for all of them (particularly those around classes and inheritance), but these ‘Uncle Bob’-inspired tips might help you think more about how you name things and structure your code.

Milos Protic

💻 Jobs

Front-End Engineer - Apple Inc. (CA, US) — Love the challenge of solving complex problems? Be part of a team with strengths crafting JavaScript apps for iCloud Analytics.


Product-Focused & Driven Frontend Engineers in Stockholm — Join our 30-person team of A-players, solve problems at global scale & help us become the most trustworthy online health company.

Diet Doctor Sweden AB

Find a JavaScript Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Tutorials, Opinions, and Videos

How to Create Interactive Sankey Diagrams with JavaScript — A Sankey diagram uses snake-like lines to show changes or 'flows' in data formations (e.g. how a distribution of votes changed between two elections).

Alfrick Opidi

Vue.js and SEO: How to Optimize Reactive Sites for Search Engines — Are sites created with front-end rendered frameworks indexed by Google? Or do you need to set up pre-rendering? Paolo performed an experiment to see the reality.

Paolo Mioni

Truly Reactive Programming with Svelte 3.0 — The latest release of Svelte, a compile-time Web framework, seems to have really struck a chord with developers.

Ovie Okeh

See Why 1.2M Developers Are Building With Mapbox GL JS — Mapbox is making it easier than ever to build, implement, and render amazing maps across mobile and web projects.

Mapbox sponsor

How to Build a Tic Tac Toe App with TypeScript, React and Mocha — Learn how to compose a tic-tac-toe app with React and TypeScript components.

Josh Kuttler

Three.js Fundamentals: A Tutorial — This is a very extensive and impressive set of tutorials on using Three.js to create browser-based 3D experiences.


Approaches to Handling Errors in Vue.js Apps

Raymond Camden

🔧 Code and Tools

Rough.js: Draw Web Graphics with a Hand-Drawn, 'Sketchy' Appearance — Supports both drawing on Canvas or using SVG. Yes, it's a classic, but it keeps getting updates.. most recently with support for dashed, sunburst, and zig-zag fills.

Preet Shihn

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

reLift-HTML: A Very Light Way to Create Web Components and Add Reactivity to Pages — Boasting that it has no dependencies, no virtual DOM (some people like this idea), and needs no build tool, this is an interesting project that brings together several modern Web technologies in a very vanilla JS way.


v8n: A 'Fluent Validation' Library — Chain together rules to make validations, e.g. v8n().some.not.uppercase().test("Hello");

Bruno C. Couto

AST Explorer: Analyze the Structure of Parsed JavaScript Online — A neat little Web-based tool to see how supplied JavaScript code gets parsed into a syntax tree.

Felix Kling

Material-UI 4.0: Google Material Design-Inspired React Components


await-timeout: A Promise-Based API for setTimeout and clearTimeout

Vitaliy Potapov

Safely Roll Out Features in JavaScript with Free Feature Flags

Optimizely Rollouts sponsor

Reveal.js 3.8.0: An HTML Presentation Framework — A now mature framework that continues to get frequent updates and releases.

Hakim El Hattab

Ember 3.10 Released

Kenneth Larsen and Jessica Jordan