#422 — February 1, 2019

Read on the Web

JavaScript Weekly

Future JavaScript: What's Still Missing? — We’ve looked at ES2018 and ES2019 and it seems JavaScript is evolving at a good pace, but Dr. Axel asks.. what’s still missing?

Dr. Axel Rauschmayer

Google Play Store Now Open for Progressive Web Apps — Chrome 72 for Android shipped the Trusted Web Activity feature meaning you can now distribute PWAs in the Google Play Store - via our Mobile-focused newsletter.

Maximiliano Firtman

Swift and Straightforward Bug Fixes for Your JavaScript Apps — Identify impactful errors at a glance. Sort errors by event count or users impacted to find ones that occur most frequently or affect a large segment of users. Get to the root cause of errors quickly with automatic diagnostic collection. Try it free.

Bugsnag sponsor

FlexSearch.js: A Full Text Search Library — Claims to outperform all of the alternatives while supporting features like multi-word matching and phonetic transformations. Happy in both the browser and Node.js.

Nextapps GmbH

Jest 24 Released: The JS Testing Framework — It’s been 8 months since the last major release and it’s a big one with built-in support for TypeScript, improved assertion messages, and a fix for an annoying console.log bug, plus it gets a new Web site.

Simen Bekkhus

Severe Security Vulnerabilities Found in Bower — Bower, a popular web package manager, is vulnerable to archive extractions, so if you’re still using it, upgrade to version 1.8.8.

Liran Tal (Snyk)

📣 A Note..

If you don't always make it to the end of an issue, make this week an exception as we've interviewed Sandeep Gupta, the product manager of TensorFlow.js, an increasingly important part of the JavaScript ecosystem in the machine learning space.

💻 Jobs

React Native Developer - Remote — Join our fully remote team and help bring one of the leading recreational poker platforms to the mobile world.

Replay Gaming

Become a Part of European Remote Work Culture — We built the first Europe-focused remote jobs board. No US only positions. Work during European working hours.

Europe Remotely

Find A Job Through Vettery — Vettery specializes in developer roles and is completely free for job seekers.


📘 Tutorials and Opinions

How to Remove Array Duplicates in ES6 — A look at filtering out duplicates from an array and returning only the unique values in three ways, with Set, filter, and reduce.

Samantha Ming

Improving Code Readability With async/await

Ben McCormick

Type-Driven Development: Replacing Unit Tests with Types in TypeScript — Unit tests are great. But on TypeScript projects, many of them can be replaced with explicit type definitions..

Andy Peterson

Secure and Accelerate Your Cloud Storage — Use Cloudflare Workers to cache content while still preventing unwanted access with HMAC & JSON Web Tokens.

Cloudflare Workers sponsor

Object.assign vs Object Spread in Node — The Object spread operator {...obj} is similar to Object.assign(), so which should you use?

Valeri Karpov

What Is 'Tree Shaking' and How Does It Work? — Ire is great at explaining concepts in a way anyone can understand.

Ire Aderinokun

Building an Image Recognition App using ONNX.js — ONNX.js is a JavaScript library by Microsoft for running ONNX (Open Neural Network Exchange) models in browsers and on Node.

Zain Sajjad

Creating Container and Presentational Components in Angular

Latish Sehgal

A Year on TC39: Going from Oblivious to Co-Chair in 14 Months — You’ll enjoy this story if you’re interested in the way the standards behind JavaScript come together and get discussed.

Aki Rose (Braintree)

🔧 Code and Tools

Babel 7.3.0 Released — Includes support for named capturing groups in regular expressions, private instance accessors, and the smart pipeline operator.

Nicolò Ribaudo

A Much Faster Way to Debug Code Than with Breakpoints or console.log — Wallaby catches errors in your tests and displays the results of expressions right in your editor as you type.

Wallaby.js sponsor

Finance.js: A Library for Common Financial Calculations — Covers several things like amortization, compound interest, ROI..

Essam Brady-Jobory

TypeScript 3.3 Released — A smaller than usual release with no breaking changes.


Relay: A Framework for Building Data-driven React ApplicationsVersion 2 just came out and now uses the new Context API rather than the legacy one. It also steps up to React 16.


Readability.js: Extract the Readable Content from an HTML Document — A standalone version of the library used to power Firefox’s Reader View.


Improve Video Quality with Per-Title and 3-Pass Encoding

Bitmovin sponsor

Nuxt.js 2.4: Framework for Server-Rendered Vue.js Apps2.4 introduces smart prefetching, TypeScript support (seems to be the fashion!), and more. Plus a formal release schedule has been adopted.

Chopin, Chopin, et al.

A Vue.js Declarative Animations Library — A declarative Vue template wrapper around Velocity.js.

Brian Rosamilia

The Lounge: A Modern, Self Hosted Web-Based IRC ClientVersion 3 is a major release with lots of updates.

The Lounge

TensorFlow is an open-source machine learning framework (and dataflow programming in general) developed at Google that has seen a burst in popularity recently.

TensorFlow.js, released less than a year ago, brings the power of TensorFlow to JavaScript developers keen to do things like in-browser machine learning (though Node is also supported), and we caught up with its product manager to find out a little more about it:

How do you see TensorFlow.js opening up new opportunities versus the more established Python and C TensorFlow worlds?

In the browser, TensorFlow.js offers unique opportunities by taking advantage of the interactive user experience, sensors such as webcam, microphones, GPS, etc, and the ability to offer rich, real-time visualization experiences. See some fun demos here. For enterprises using Node.js, building ML solutions using TensorFlow.js means that the same teams working on their backend infrastructure can also integrate ML pipelines directly without having to stand-up separate Python-based data-science teams.

What's the most interesting use of TensorFlow.js you've seen so far?

We are continuously surprised by novel and interesting use cases of TensorFlow.js. Several examples are listed here in our gallery page. We love projects like Creatability and Handsfree.js, which allow you to make more accessible and handsfree interfaces and experiences for the Web and open incredible new opportunities. With server-side TensorFlow.js, Magenta Studio has built several amazing music generation plug-ins using powerful ML techniques.

While machine learning is perhaps the most noteworthy use case for TensorFlow, what interesting uses for TensorFlow.js do you see outside of that space?

At a low level, TensorFlow.js is fundamentally a math and linear algebra library so it enables non-ML numerical and computational uses. A great example is the work done by Uber in building their Manifold application. Although Manifold is a tool for Uber's ML visualizations, they are using TensorFlow.js for its extremely fast numerical computations in JavaScript.

But we are still in the early days of large scale data science in JavaScript. To make TensorFlow.js a widely-used general-purpose computational library, a lot of other numerical functionality would be needed in JS - similar to the rich data analysis toolset that exists in the Python world eg. Numpy, Pandas, matplotlib, etc.

Sandeep Gupta is the product manager of TensorFlow and TensorFlow.js.