Web Tools Weekly
What a Tool!

Issue #219  (Composition, JS Utils, Testing, React Tools)09/28/17

Free Risk API from Clearbit
A free way to detect bad actors, identify disposable email addresses, and stop spam signups. 
Get it now - >

I just stumbled across a YouTube channel called Fun Fun Function that you will definitely want to subscribe to if you're a JavaScript developer. The channel is run by Mattias Petter Johansson who previously worked as a developer for Spotify, Absolut Vodka, and Blackberry. He's now independent and releasing YouTube videos of varying length weekly.

Any channel run by a developer who's worked on a huge app like Spotify is certainly going to have lots of practical coding tips and suggestions.

I found the channel while reading up on JavaScript constructor functions. The video (which was referenced in the comments of a blog post on constructors) is called Composition over Inheritance.

Here are some notable points from the video (which is humorous, as seem to be all of his videos):

  • Inheritance is when you design your types around what they are.
  • Composition is when you design your types around what they do.
  • The limitations of inheritance can be solved using composition.
  • Although many developers favor composition over inheritance, they still feel inheritance has its uses. Mattias, on the other hand, feels inheritance should never be used.
  • Composition is more powerful, more flexible, easy to implement, and doesn't encourage you to create a rigid taxonomy of objects like inheritance does.
In the first half of the video, he goes through a goofy but clear example demonstrating why the composition design pattern is superior to the inheritance pattern.

Well worth watching, as I'm sure are his other videos.

Now on to this week's tools!
Did you buy my previous JavaScript/DOM tips book? Here's the latest one...
70 JavaScript & DOM Tips for $5 (Volume 2)

JavaScript Utilities

Create a promise that reports progress. Useful for reporting progress to the user during long-running async operations.

A tiny library that lets you detect new DOM nodes using CSS selectors.

A tiny view + state management solution using innerHTML.

Multi-featured abstraction layer on top of web workers.

1 KB virtual DOM builder and patch function.

Minimal, non-dependent, non-fancy JavaScript tooltip with pure CSS version as an alternative.

Fast and light component system, backed by hyperHTML (a virtual DOM alternative).

Generator Utilities
A utility library for generating and processing sequences based on ES6 generators.

Enable ES2015 modules in Node.

Simple requestAnimationFrame() helper.

Testing and Debugging Tools

A/B tests without code or JavaScript snippets. Just log in via Google Analytics.

Visual Inspector
Chrome extension. A visual tool to inspect/edit web pages. Helpful for designers to make temporary edits without coding.

Custom Elements Everywhere
Runs a suite of tests against frameworks to identify interoperability issues with Custom Elements, highlighting potential fixes.

A linting tool for the web. Tests for accessibility, interoperability, performance, PWA validation, and security.

Crawl a website and run it through Lighthouse, Google's tool for testing website quality.

React VT
Visualized testing library for React.

NCC Image Checker
Chrome extension. Scans a whole page to identify all images and highlights those that are sent at too large a size.

Little Warden
Monitor Domain and SSL Expiration, redirects, and HTTP responses.

Service to record everything visitors do on your website.

Do you like this newsletter? Here's an option to show your support...
Make a One-time Donation via PayPal.me/WebToolsWeekly

React Tools

React PowerPlug
a Just add water™ set of functions-as-children components that add different types of state logic to your dumb components.

Provides an easy to use client side TTL caching strategy for Redux applications.

Custom scrollbar and scroll area components with native mechanics.

Image processing component. Processes an image with filters supplied as props and returns a base64 image.

React Image Filter
React component that uses SVG filters instead of CSS Filters, so it works in all modern browsers including IE10+ and Edge.

React Universal Component
The final universal component for React you'll ever need.

React components for animated state transitions that update with your data. Uses d3-timer, a concurrent-animation manager, to efficiently manage thousands of state tweens.

A predictable and observable state container for React apps.

Orchestrated page transitions made easy.

React Slideshow
Customizable slideshow component for React.

A React component for showing a speedometer-like gauge using D3.js.

A Tweet for Thought

Here's how to prevent Twitter from tracking your site visitors if your website embeds tweets.

Suggestions / Corrections

Made something? Send links via Twitter @WebToolsWeekly (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, feel free to reply to this email.

Before I Go...

Shut Up and Take My Money is an attempt to monetize content in spite of ad blockers. Not sure if this will catch on, but worth a shot I suppose.

Thanks to all for subscribing and reading!

Keep tooling,