La vigie du numérique #019


Dans cette veille, on prend de la hauteur et on vous partage tous les mois les inspirations de notre équipe, les pistes de réflexions, les idées nouvelles, mais aussi nos trucs et astuces sur l’UX, l’UI et le développement web.


Site Internet

Times Two Design

Un menu original, des visuels soignés, un scroll infini, le curseur qui change de couleur… de très bons ingrédients pour une expérience utilisateur réussie.


Dataviz

NASA Scientific Visualization Studio

Cette série de dataviz nous permet de visualiser les émissions de CO2 à l’échelle de la planète. Une bonne manière de voir qu’elles proviennent, sans surprises, des mêmes points d’origine. 👀


Expérience web

The Deep Sea

Retour sur un basique de l’interaction : le scroll, qui nous permet ici de descendre loin dans les profondeurs des abysses ! Par rapport aux évènements récents … On vous laisse vous rendre compte de la profondeur du Titanic.


Outil

Who Can Use

C’est un outil plutôt pratique pour les designers, afin de comprendre comment les contrastes de couleurs peuvent affecter la vision de certaines personnes.


Dataviz

Eleanor Lutz, The Season of Earth

Retour sur cette carte animée de 2019, que l’on trouve toujours aussi impressionnante. Elle a été réalisée avec des Open data de la NASA,l’USGS, et Natural Earth. La designer explique toute sa méthodologie dans son article, très intéressant.


Ressources typo

Uncunt

Free Faces


Ressource

Absurd Illustrations

Des séries d’illustrations qui changent de l’ordinaire


Dev Tips du mois

Utiliser async dans une boucle en Nodejs

Utiliser async en Nodejs permet de fluidifier l’écriture du code : fini les cascades de Callback !

La complexité peut réapparaitre lorsqu’on tente de faire de l’asynchrone dans une boucle, on peut se lancer dans des tableaux d’async, dans des Promise ou autre.

Une astuce toute simple consiste à écrire la boucle avec “of” et tout s’enchaîne proprement !

Imaginons une collection MongoDB contenant des articles nommés “Article” dans lesquels un auteur est mentionné. Nous souhaitons ajouter cet auteur à une autre collection nommée “Author” seulement s’il n’y est pas déjà présent. Ça pourrait donner ça :

populateAuthors: async function() {
	//On récupère l'ensemble des articles
	let articles = await Article.find();
	for (const article of articles){
		//On vérifie si un auteur avec ce nom existe déjà en base
		foundAuthor = await Author.findOne({name:article.author});
		if(!foundAuthor){
			//S'il n'existe pas on l'ajoute
			const author = new Author({
          name: article.author
      });
      await Author.create(author)
		}
	}
}Langage du code : JavaScript (javascript)

Dans cet exemple, chaque itération de la boucle attend bien l’écriture en base de l’auteur avant de lancer l’itération suivante. Ça n’aurait pas été le cas avec une boucle classique de type :

for (let i = 0; i < 10; i++) {
  console.log(i);
}Langage du code : JavaScript (javascript)