#421 — January 25, 2019

Read on the Web

JavaScript Weekly

I posted a JSON and macOS-related tip to Twitter earlier this week that was surprisingly popular, and I was encouraged to include it here.. so if you're curious, scroll to the end of this issue 😄
— Peter Cooper, editor

The TypeScript Tax: A Cost vs Benefit Analysis — TypeScript's becoming increasingly popular, but is it worth it? Eric Elliott presents some critical, data-driven analysis to establish the viability of using TypeScript when building larger apps.

Eric Elliott

What's (Could Be) New in JavaScript for 2019 — Just two weeks ago we were reflecting on what ES2018 features we should know but now we’re on to speculating on what’s coming in ES2019.

David Neal

Make a Valuable Open Source Contribution with CircleCI Orbs — CircleCI Orbs (packages of configuration) are a growing trend in open source. In this post, learn how to write your own orbs that thousands of developers can plug into their CI workflows.

CircleCI sponsor

Node Now Has Worker Threads Enabled by Default — With Node 11.7 (released last week), the new worker_threads module is now enabled by default which brings multithreading to Node. Prefer a video? This talk from Anna Henningsen is excellent.

Alberto Gimeno

The “Bug-O” NotationBig O helps us think about the running time or memory complexity of our algorithms, but here Dan Abramov urges us to think about Bug-O (or how much an API slows you down as your codebase grows).

Dan Abramov

Yarn's Future: Looking to v2 and BeyondYarn is a popular JavaScript dependency management tool and an interesting alternative to npm. This update reflects on what Yarn has achieved and what’s yet to come.

Yarn

The NPM Universe, Visualized — A ‘code galaxies’ visualization of thousands of npm packages and their relationships and correlations to each other. Neat to fly around in.

Andrei Kashcha

💻 Jobs

Senior Frontend Engineer - Redwood City, CA — Build the platform that empowers researchers to develop high-performance materials and chemicals faster than ever before.

Citrine Informatics

Senior Angular / Node Engineer at eBench (Remote, Full-Time) — We are a SaaS company building a new social platform. Enjoy crafting quality code? We would love to hear from you.

eBench

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

Vettery

📘 Tutorials and Opinions

Convert a String to a Number in JavaScript — You might think this is a simple task and explainable in a single line of code. Au contraire.. there are some subtleties to be aware of.

Valeri Karpov

Online Info Session: Inside Big Nerd Ranch Bootcamp — Ever wondered what’s involved with a bootcamp? Sign up for this free online session.

Big Nerd Ranch sponsor

How to Stop Using Browser Dev Tools & to Debug Inside VS Code Instead“I think that debugging your JavaScript in the Chrome developer tools is not the way our brains want to work. I would like to propose that what we really want is to debug our code in the same place that we write it.”

Burke Holland

Writing a GraphQL Client in Vanilla JS — A short tutorial on writing a GraphQL client with zero dependencies.

Shlok Desai

Building an AOT Friendly Dynamic Content Outlet in Angular

Wes Grimes

Learn Node and MongoDB by Building a URL Shortener App — Aimed at the entry level developer who wants to pick up several skills at the same time by building a single app.

Ayo Isaiah

A React Introduction For People Who Know Just Enough jQuery To Get By — A 2019 attempt at ground first covered in a similarly titled article from 2015. This is aimed at less confident developers who want a walkthrough of a basic project in order to pick up the essentials.

Julien Benchetrit

Just Announced. Serena Williams to Keynote at Frontiers 2019

Slack sponsor

15 Useful Examples of .map().reduce() and .filter()

Alex Permyakov

Writing Maintainable & Readable JavaScript: Some Design Patterns

Godwin Ekuna

The JSConf and CSSconf EU Finances — JSConf EU is a not-for-profit conference but that doesn’t mean it’s cheap to put on. Here are the numbers behind its success.

JSConf EU

🔧 Code and Tools

Hotkey: Trigger an Action on an Element When a Keyboard 'Hotkey' is Pressed — Binds hotkeys to any link with a data-hotkey attribute set. Developed at GitHub itself.

GitHub

Ionic 4 Released — Ionic is now distributed as a set of Web Components using the Custom Elements and Shadow DOM APIs available in all modern mobile and desktop browsers. If you’ve thought of Ionic as an Angular UI framework in the past, this is no longer true.

Max Lynch (Ionic)

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

Cloudflare Workers sponsor

Redux Starter Kit: A Set of Tools to Make using Redux Easier — A toolkit in the spirit of create-react-app for making configuring and working with Redux easier. As of this week, it uses TypeScript too.

Redux

Functional TypeScript: A Standard for Solid Serverless Functions — Create type-safe serverless functions where you just write normal TypeScript functions and validation, HTTP, and other issues are handled for you. Generates docs for you and supports all major providers too.

Travis Fischer

RE:DOM: A Tiny (2KB) JS Library for Creating User Interfaces — Adds helpers to create DOM elements and keep them in sync with data, all without a virtual DOM and sticking to vanilla JavaScript.

Juha Lindstedt

Musish: It's Apple Music...ish — An attempt at building a better interface to Apple Music using JavaScript.

Musish

⚡️ A quick tip for Mac Users

If you're on macOS and have Homebrew installed, run brew cask install quicklook-json and Quick Look (where you press the spacebar with a file highlighted in Finder) will let you quickly look into JSON files with the correct formatting:

If you don't have Homebrew, you can install quicklook-json manually, though I can't vouch for that directly.

There are a lot of other Quick Look plugins covering other formats too, such as Markdown or APKs, and even adding syntax coloring to previewed code.