Daily Shaarli

All links of one day in a single page.

June 21, 2022

Inside JavaScript Engines, Part 1: Parsing
thumbnail

Un article très complet sur le fonctionnement des lexer / parser de v8 (Chrome, Node.js) et SpiderMonkey (Firefox)

On comprend notamment que v8 se "plie" aux conventions des outils de minification du code ou encore que le point virgule est bien nécessaire ;-)

google/zx: A tool for writing better scripts
thumbnail

Un mix entre bash et javascript pour écrire des scripts bash avec plus d'aisance. (Car oui écrire des scripts un peu compliqué en bash est une chienlit..)

#!/usr/bin/env zx

await $`cat package.json | grep name`

let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`
AbortController is your friend
thumbnail

Un article très complet sur l'utilisation de AbortController pour annuler des requêtes réseau en cours notamment.

Je ne savais pas qu'il était aussi possible d'arrêter un listener de cette manière ! C'est pratique car il n'y a pas besoin de garder une référence sur la callback.

const controller = new AbortController();
const { signal } = controller;

window.addEventListener('resize', () => doSomething(), { signal });

// later
controller.abort();
Microvium is a very small JS runtime

Un runtime Javascript (comme v8 qui est utilisé dans Chrome et Node.js) qui utilise seulement 8.5 Ko d'espace disque et minimum 34 octets de RAM!

Le but est d'utiliser du Javascript dans des micro contrôleurs qui pour la plupart ont 64 Ko de disque et 2 Ko de RAM.

L'auteur défend son projet avec notamment l'argument du single thread de javascript qui consomme moins de ressources que le multi thread.

On peut aussi ajouter qu'il est nettement plus simple et maintenable d'écrire du JS à mémoire managé que du C.

A match made in heaven: Tinder and Statistics

Analyse détaillée d'informations extraites de Tinder via des bots connectés sur leur API.

Les explications des outils d'analyse (Python, Panda, Numpy, etc) et les snippets sont bien expliqués 👍