ISSUE #174

The economics of package management, JavaScript Hacks, ES6 Proxy, and more


The economics of package management

I’m going to tell you a story about who owns the JavaScript language commons, how we got here, and why we need to change it. It’s a story about money as much as it is about Javascript— money and ownership and control.

npm passes the 1 millionth package milestone! What can we learn?

June 4th is a historic date. Not only is it our very own Liran Tal’s birthday (Mazal Tov, Liran!) but it is also the date that the millionth package was indexed into the npm registry. npm is a package manager for JavaScript packages. The core component of npm is its public registry, hosting JavaScript packages that can be accessed by the npm client to build JavaScript applications.


Video — Some JavaScript Hacks Explained

Tthis week's issue of JSU is free. We are looking at the most common JavaScript hacks and how they work. As a reminder, for the WeekendJS subscribers, this link will give you 22% off.

The powerful ES6 proxy object

Today: yet another ES6 feature that I think most people don’t know about. The Proxy object is used to define custom behavior for fundamental operations (e.g. property lookup, assignment, enumeration, function invocation, etc).

8 Useful JavaScript Tricks

Each programming language has its own tricks up in its sleeve. Many of them are known to developers, and yet some of them are pretty hackish. In this article, I will show you a couple of tricks I find useful. Some of them I've used in practice and others are the new way of solving old problems. Enjoy!

!!CON 2019

Tail Call Optimization: The Musical!! | by Anjana Vakil & Natalia Margolis

If you don't know what the tail call optimization means, this the best way to get to know about it.

Anything is possible! Unlocking the Nightmarish Power of JavaScript | Andrew Sillers

JavaScript is often the butt of jokes about haphazard language design, but that jumbled design allows for some truly alarming power. If other languages let you shoot yourself in the foot, then JavaScript lets you grow tentacles and shoot yourself in those.



The Optional Chaining Operator allows a developer to handle those cases without repeating themselves and/or assigning intermediate results in temporary variables: user.address?.street.


An introduction to the MediaRecorder API | Twilio

The MediaRecorder API is a web API that you can use to record audio and video in the browser. In this post we'll build an app that records audio and lets you download it.


RxJS switchMap, concatMap, mergeMap, exhaustMap

Before RxJS become fairly popular in front-end development we all were dealing with AJAX requests with Promises. Promises are easy to use and understand but in some more complex scenarios, not enough. In this article, I will explain how to efficiently use higher-order observable streams in four different scenarios with four different flattening strategies - mergeMap, concatMap switchMap and exhaustMap.


Task Management Application Using Vue.js — Part 1 | Shirish Nigam

Building larger user interface in Vue.js requires you thinking in terms of component-based architecture. We’ll look at task management app using Drag-n-Drop, Vuex and EventBus with examples.


Visual Studio Code May 2019

Welcome to the May 2019 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include...


Code quality and web performance, the myths, the do's and the don'ts | Enmanuel Durán

Performance optimizations are sometimes mistakenly executed, in this article we will explain some of the most common mistakes we make when we want to optimize an application, we will also go through alternatives a good ideas to take into consideration when applying optimization in our codebase.

Weekend JavaScript

Hey! I'm Ianis. And this is a curated list of JavaScript news and articles (sending every Friday). No spam. Just fresh write-ups on the language features, frameworks, testing practices and beyond.
1107 already subscribed.