Weekly Shaarli

All links of one week in a single page.

Week 34 (August 22, 2022)

Experience on building PWA using Flutter
thumbnail

Un super retour d'expérience sur l'utilisation de Flutter Web pour créer une PWA !

Les équipes ont décidé de faire une PWA pour éviter le problème de gestion d'anciennes versions d'une app mobile dans leur parc.

A part quelques difficultés autour de l'utilisation de l'appareil photo, ils n'ont pas rencontré de problème.

C'est vraiment encourageant pour Flutter Web car la techno est en production depuis seulement 1 an et semble déjà à la hauteur des promesses.

Ce genre de choix permet de tester rapidement un concept avec une PWA et de publier plus tard des applications natives sur les stores.

How SQLite Scales Read Concurrency
thumbnail

Article explicatif de l'implémentation du Write-Ahead Logging (WAL) dans SQLite.

Le WAL est le mécanisme permettant de garantir que l'on ne perd pas de données lors de la persistence de la base de données sur le disque.

The impact of removing jQuery on our web performance
thumbnail

Un REX du gouvernement Britannique qui a enlevé JQuery de ses pages (32Kb compressé).

Ils ont observé une amélioration de 17% des performances en moyenne!

Par contre, ils n'ont pas utilisé d'autre lib JS à la place non plus :-)

Typescript is terrible for library developers
thumbnail

Je partage totalement cet opinion sur Typescript du point de vue du développeur de framework.

Quand on est simplement utilisateur, on est content d'utiliser les types et on veut en voir partout.

Quand on doit écrire ces types, c'est rapidement un casse-tête assez important si on veut le faire correctement!

Regardez cette définition dans redux-toolkit par exemple 🙄

Les créateurs de Deno ont même décidé de ne PLUS utiliser Typescript dans leur codebase interne car cela devenait trop complexe de maintenir les types.

Audible feedback on just how much your browsing feeds into google
thumbnail

Un moyen d'eméttre un bip sur linux à chaque fois qu'une info est envoyée à Google.

Ça fonctionne avec tcpdump et une liste d'IP appartenant à Google.

Chez moi j'ai du spécifier toutes les interfaces avec -i any

Voir le résultat en vidéo

Equity 101 for Software Engineers at Big Tech and Startups
thumbnail

Un autre article qui parle d'Equity, orienté sur les mécanismes qui existent au US (le dernier parlait des mécanismes Français, les BSPCE)

Ils donnent une liste de "red flags" de certaines entreprises qui font miroiter monts et merveilles:

  • termes abusifs si on quitte l'entreprise, comme rendre les actions si on part avant 4 ans
  • période d'activation (exercer ses BSPCE pour acheter des actions) supérieur à 4 ans
  • courte période pour exercer ses BSPCE si on quitte l'entreprise
  • BSPCE donnés en euro plutôt qu'en nombre
What is a GPU?
thumbnail

Excellente explication du fonctionnement des GPUs et particulièrement des 4 niveaux de mémoire de travail disponibles.

Une analogie est faite entre un GPU et une entreprise de bureau avec des équipes de personnes qui doivent s'échanger de l'information.

Un exemple de code CUDA, le framework pour bosser sur les GPU Nvidia, est expliqué pas à pas

Lodash is dead. Long live Radash
thumbnail

Je ne connaissais pas Radash mais ça tombe bien parce que je trouvais également que Lodash était vieillissant (et tellement lent..)

La librairie standard de Javascript est tellement inexistante que ce genre de lib est quasiment obligatoire malheureusement.

Mes fonctions préférées:

Remplacement de Bluebird.map:

import { parallel } from 'radash'

const userIds = [1, 2, 3, 4, 5, 6, 7, 8, 9]

// Will run the find user async function 3 at a time
// starting another request when one of the 3 is freed
const users = await parallel(3, userIds, async (userId) => {
  return await api.users.find(userId)
})

Terminé les for (let i = 0; i < 5; i++):

import { range } from 'radash'

for (const i of range(0, 5)) {
  console.log(i) // => 0, 1, 2, 3, 4, 5
}

Nombre aléatoire dans un interval:

import { random } from 'radash'

random(0, 100) // => a random number between 0 and 100

Et toutes les fonctions de manipulation de string comme en Ruby: capitalize, snake, camal, etc

How to Refactor to Configurable Dependency in 5 Steps
thumbnail

Un excellent exercice de refactor pour appliquer l'injection de dépendance !

L'injection de dépendance est un des principaux design pattern pour réduire le couplage entre les classes et pour créer du code plus facilement testable.

Oven: the company behind Bun
thumbnail

Bun, le runtime Javascript qui se présente comme une alternative à Node.js, a levé 7 millions de dollars.

Ils recrutent maintenant pour sortir une version stable de leur produit.

A suivre de très près !

Creating micro-frontends with Piral
thumbnail

Un article présentant un framework pour micro-frontend avec tout le tooling pour se simplifier la vie.

Attention car même avec Piral, gérer un ensemble de micro-frontend est beaucoup plus compliqué.

Une telle décision d'architecture doit se reposer uniquement sur un besoin d'organisation d'une grande équipe en plus petites équipes focalisée sur un domaine de l'application.

Plus d'info sur les micro-frontend https://links.aschen.tech/shaare/AuKMeA

You’re Not a Senior Software Engineer
thumbnail

Article très intéressant sur une sorte de classification des développeurs.

Cela se base sur le ratio entre savoir et expériences.

Junior: Un peu de savoir et aucune expérience.

Middle: Moyennement de savoir et un peu d'expérience

Senior: Beaucoup de savoir et d'expérience, légèrement plus d'expérience

Free and Open Source AI Image Upscaler for Linux, MacOS and Windows
thumbnail

Un outil qui permet d'améliorer la résolution des images grâce à un réseau de neurone

Using Protocol Buffers with Node.js application

Un exemple d'utilisation des Protocol Buffers en Node.js.

L'exemple utilise l'excellente lib Protobuf.js qu'on utilise aussi dans le coeur de Kuzzle pour la communication entre les noeuds du cluster ;-)

J'en parlait ici aussi https://links.aschen.tech/shaare/R6dzhw

Big Changes Ahead for Deno
thumbnail

Deno annoncent quelques changements avec notamment le support des packages JS en provenance de NPM!

Ils annoncent aussi qu'ils souhaitent être le moteur JS le plus rapide.

Je ne serais pas surpris que cela soit poussé par la sortie de Bun.js qui a de très bonnes performances, supporte le typescript et les packages NPM

VS Code - What's the deal with the telemetry?

VScode est un produit "gratuit" de Microsoft, donc nous sommes les produits.

Plus de 1600 données différentes sont collectées par VSCode avec notamment:

  • toutes les informations de sessions (temps passé, dernière session, etc)
  • toutes les informations sur votre ordinateur
  • tout ce que vous faite dans l'IDE (ouverture de fichier, search & replace, etc)

Il est impossible de désactiver totalement la télémétrie.

Si possible, il faut se tourner vers l'alternative libre VSCodium

Software Visualization — Challenge, Accepted
thumbnail

Un article intéressant de Spotify qui avait besoin d'une manière de visualiser correctement les interactions entre leurs centaines de services.

Ils n'ont pas utilisé UML (thanks god!) mais plutôt le C4 Model qui est un diagramme à 4 niveaux:

  • Contexte: comment s'intègre notre système avec d'autres systèmes (service mail externe, autre système métier, etc)
  • Containers: quels sont les principaux composants de notre système (app mobile, base de données, frontend admin, etc)
  • Components: principales briques métiers de chaque container (CartController, EmailService, etc)
  • Code: classes composants les briques métiers

Je connaissais pas mais ça à l'air d'être un outil approprié pour définir visuellement des systèmes très complexes tout en offrant la possibilité de "zoomer" dans des niveaux plus détaillés