Revue de presse by Itelios

Cette fois encore nous allons parler de DevOps, de Javascript, de NodeJS et de mobile. On vous a également concocté quelques sujets pour le fun 😇.


Général

Une introduction aux bases de données orientées graphe

Damien Lebreuilly

Dans le monde du développement, il est très courant d’entendre parler d’une part des bases de données relationnelles, et de l’autre de bases ‘NoSQL’ (qui, on le rappellera, signifie au départ ‘Not only SQL’ et n’est pas un appel à l’abandon pur et simple des bases relationnelles).
‘NoSQL’ est devenu un buzzword marketing servant à vendre tout et n’importe quoi.
En réalité, il s’agit d’un ensemble de technologies de stockage de données différentes les unes des autres, chacune adaptée à des use cases bien spécifiques.
On peut citer quatre types principaux dans la mouvance ‘NoSQL’: bases orientées clef/valeur (ex: Redis), bases orientées documents (ex: CouchDB, MongoDB), bases orientées colonne (ex: BigTable, Cassandra, HBase) et bases orientées graphe (Neo4J, OrientDB).
Les bases orientées graphe, fondées sur la théorie du même nom, ont pour objectif d’accélérer le requêtage pour les modèles de données axés sur les relations profondes entre éléments.
L’article suivant vous propose une overview des concepts fondamentaux de modélisation pour ce type de base.

Getting Started with Graph Databases

Pourquoi et comment «hasher» les mots de passes

Damien Lebreuilly

Les mots de passe sont un des sujets centraux en terme de sécurité: si votre base d’utilisateurs est compromise, il est de votre responsabilité de vous assurer, en dernière ligne de défense, que les mots de passe qu’elle contient sont le plus difficile possible à exploiter.
Cet article par ITHare vous détaille les bonnes pratiques actuellement considérées comme ‘l’état de l’art’ sur le sujet.

Password Hashing: Why and How


DevOps

Pourquoi ne pas laisser vos builds s’empiler

Damien Lebreuilly

L’article qui suit vous propose un petit exercice d’analyse de processus de build. La question principale étant de trouver un équilibre en terme de coûts entre:
- utiliser des serveurs peu puissants/peu nombreux de façon à maximiser l’utilisation des CPU au cours du temps, au prix de la constitution de files d’attentes dans les périodes de forte charge.
- utiliser des serveurs plus puissants/plus nombreux, qui vont traiter les builds rapidement mais rester plus souvent inoccupés (ce que l’on perçoit comme une perte de temps CPU)
Une problématique intéressante à étudier dont les résultats peuvent être contre-intuitifs.

Simulating Auto Scaling Build Clusters Part 1: The Mathematical Justification for Not Letting Your Builds Queue


JavaScript et NodeJS

NPM-Gate et les modules de Azer Koçulu

Guillaume Poittevin

Tremblement de terre sur la planète Node.js. Enfin, petite vaguelette finalement. Retour rapide sur les évènements de ces derniers jours.
Le 23 mars dernier un développeur, Azer Koçulu, publie un article sur Medium, pour expliquer la raison qui l’a conduit à retirer tous ses modules de NPM.
Pour faire simple, la société Kik, qui édite une application de messagerie mobile, a demandé le retrait d’un module d’Azer, nommé kik. Dans cette « bataille », NPM a décidé d’accéder à la requête de la société Kik et de retirer le module de son dépôt.
Le développeur a donc décidé de quitter intégralement le dépôt NPM avec tous ses petits et notamment certains modules dont left-pad qui se trouve être une dépendance importante de beaucoup d’autres modules NPM.

Cet épisode a soulevé de nombreuses questions chez les développeurs Node.js: comment peut-on intégrer sereinement des dépendances issues de NPM si, du jour au lendemain, une version peut être supprimée par son auteur, ou pire remplacée par quelque chose de complètement différent ? Est-ce que NPM a eu raison d’accéder à la demande de la société Kik ? Est-ce que le développeur n’a pas un peu surréagi suite à cette suppression ? Chacun se fera son avis sur la question !

Quoiqu’il en soit on peut considérer cet épisode comme clos, puisque désormais les règles de suppression de NPM ont évolué. Dans un article sur leur blog, NPM a indiqué la nouvelle politique au sujet des dé-publications. Pour résumer vous pourrez supprimer tout package publié depuis moins de 24 heures, au-delà il faudra passer par une demande particulière auprès du support, qui s’assurera notamment via les statistiques que ce package n’est pas utilisé.

I’ve Just Liberated My Modules

Changes to npm’s unpublish policy

Apprendre en développant : Les observables

Damien Lebreuilly

Un Observable est un objet modélisant un flux d’évènements, très utilisé en programmation dite réactive. Il a la particularité de permettre de traiter les évènements comme des collections.
Bien que le concept ne soit pas nouveau, il a beaucoup fait parler de lui ces deux dernières années de par la présence grandissante de Netflix au sein de la communauté open source. L’entreprise est effet friande pour ses interfaces d’un type de programmation très orienté Observables, dont elle s’est faite l’évangéliste lors de grosses conférences.
L’article suivant vous propose, pour mieux comprendre le concept, d’en réaliser une implémentation.

Learning Observable By Building Observable


Dev4Fun

Faites pulser vos éléments html au rythme de la musique

Damien Lebreuilly

Inutile, donc indispensable :)

Rythm.js - Let your page dance.


Mobile

Macaca : Solution pour des tests auto sur iOS

Vincent Saluzzo

Macaca est la possibilité d’avoir un web driver compatible avec iOS et Android. Webdriver est un service qui permet de piloter un site web depuis des cas de test prédéfini. Macaca est une solution en cours de développement, écrit en NodeJS, très prometteuse pour la mise en place d’une démarche qualité avec des scenarios d’utilisation dans les applications mobiles.

Solution for Automation Test with Ease

Sortie de Swift 2.2

Vincent Saluzzo

Swift 2.2 a été publié par Apple en même temps qu’iOS 9.3, Xcode 7.3, etc. Cette version est une version de transition avec la version 3.0 qui contiendra énormement de breaking changes. La version 3.0, déjà disponible en pré-version, est la version standard compatible avec OSX et Linux. En plus d’apporter Swift Package Manager, elle va aussi apporter des changements dans la syntaxe du code, notamment sur l’héritage du C dans Swift.

Swift 2.2 Released!