Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Agilité

Divide responsibility for defining stories

Gojko Adzic est réputé pour ses travaux sur la définition de produit et le travail du (très bon) Product Owner. Dans Divide responsibility for defining stories, il part d’une conviction : une erreur classique vis-à-vis des User Stories et d’attendre du métier qu’il définisse clairement et entièrement le périmètre du produit. D’après lui, la cause de ce problème est une incompréhension du rôle du Product Owner ou du client XP : il doit décider sur quoi l’équipe va travailler, il n’est pas le responsable de sa définition, de sa conception.

Il propose l’expérience suivante :

  • Les parties-prenantes métier spécifie le ‘As a …’ et le ‘In order to’ ;
  • L’équipe propose différentes options pour le ‘I want…’ ;
  • Tout le monde évalue les options et le PO ou le client XP décide laquelle sera implémentée.

Un billet qui pousse à la réflexion !

Les barbares attaquent les DSI

The Family, rapidement devenu un acteur incontournable de l’écosystème des startups parisiennes, organise des soirées nommées « les barbares attaquent » qui revient sur les bouleversements que provoquent le monde des startups à des marchés tel que le luxe, le retail, Hollywood …

Une de ces soirées, dont la vidéo peut se visionner ici, revenait sur les changements que poussent les startups au sein des DSI.

Voila le résumé :

La disruption numérique transforme radicalement le rôle des technologies et la mission des DSI dans l’entreprise. Les géants de l’internet habituent les employés, les clients et les dirigeants à des solutions innovantes, simples et ergonomiques. Ces derniers ont des attentes sans cesse plus élevées à l’égard des DSI. Ce décalage entre la demande et l’offre des DSI profite aux startups de la Silicon Valley qui s’attaquent pan par pan à l’ensemble des infrastructures et des solutions logicielles. Si ces Barbares attaquent pour le moment les SI des petites et moyennes entreprises, c’est pour mieux s’emparer des grands groupes.

Mobilité

L’API wear de Google en developer preview

C’est officiel Google se lance sur le marché des montres connectées dont les premiers constructeurs seront Motorola et LG. D’ailleurs Motorola a déjà annoncé la sortie de sa moto 360 pour le courant de l’été 2014. Par la suite Google souhaite étendre cette technologie à d’autres objets connectés. Dans la foulée de cette annonce, une developer preview de l’API wear a été mise à disposition de la communauté des développeurs.

Craftsmanship

Java 8 est sorti

  • Si tu n’en peux plus d’écrire des fonctions avec des classes anonymes,
  • Si tu cherches toujours le “reduce” du FluentIterable de Guava,
  • Si tu rêves la nuit de pouvoir faire des Map Reduce sur tes collections en parallèle,
  • Si tu détestes Calendar, java.util.Date et que tu n’as jamais compris la gestion des Time Zone en Java,
  • Si ton espoir secret est d’exécuter du JavaScript sur la machine virtuelle Java et que se soit rapide,
  • Si tu penses qu’une interface devrait avoir un comportement par défaut et accepter les méthodes statiques,
  • Si tu adores les annotations au point de vouloir en ajouter la même plusieurs fois sur un même élément,
  • Si tu as fait la formation Scala sur Coursera mais que dans la vraie vie tu fais du Java,
  • Si à la pause café tu veux toi aussi dire que tu utilises une monade.

… alors Java 8 est fait pour toi, et viens de sortir en version finale, c’est le moment de se lancer !

Front

Angular 2.0

La version 2.0 d’Angular, représentant une évolution majeure du framework, commence à être implémentée et l’équipe Google sort un long article sur le sujet. Cette version a pour objectif de proposer un framework web taillé pour le mobile et conçu pour le futur (ce qui fait qu’il sera aussi uniquement compatible avec les dernières versions des navigateurs). Elle a aussi la particularité d’être codée en ECMAScript 6+ qui est ensuite compilé en ES5 (la version de JS supportée par les navigateurs actuels).

Au menu du futur d’Angular :

  • l’utilisation de Object.observe() pour accélérer la détection des changements et donc l’ensemble du « 2-way databinding »
  • une meilleure instrumentation d’une application
  • un framework plus modulaire pour s’adapter au monde mobile
  • une simplification de l’injection de dépendance et des directives
  • de nouvelles fonctionnalités comme des animations liés au touch, un meilleur router (surement inspiré de UI-Router) et de la persistence pour faciliter la création d’un mode déconnecté.

Flexbox et Firefox 28

Avec la sortie de Firefox 28, il est désormais possible d’utiliser flexboxgrid dans tous les navigateurs récents sans vendor prefix.

Un exemple de code pour un layout utilisant flexboxgrid:

<div class="row">
 <div class="column-12--hand column-3--lap column-2--desk column-1--wall">
  <div class="box--row"></div>
 </div>
 <div class="column-6--hand column-6--lap column-8--desk column-10--wall">
  <div class="box--row"></div>
 </div>
 <div class="column-6--hand column-3--lap column-2--desk column-1--wall">
  <div class="box--row"></div>
 </div>
</div>

<div class="row">
 <div class="column-12--hand column-3--lap column-2--desk column-1--wall">
  <div class="box--row"></div>
 </div>
 <div class="column-12--hand column-9--lap column-10--desk column-11--wall">
  <div class="box--row"></div>
 </div>
</div>
<div class="row">
 <div class="column-10--hand column-6--lap column-8--desk column-10--wall">
  <div class="box--row"></div>
 </div>
 <div class="column-2--hand column-6--lap column-4--desk column-2--wall">
  <div class="box--row"></div>
 </div>
</div>

Data

Hadoop 2.3 : un système de cache centralisé

Hadoop est un système de stockage et de traitement de données optimisé pour les gros volumes. Mais en réalité, les profils des traitements de données et des sources de données seront toujours hétérogènes. Même si on travaille avec de gros volumes, on utilise également des petites tables de référence, par exemple. A partir de la version 2.3, Hadoop est désormais doté d’un système de cache centralisé pour optimiser l’utilisation de ce second type de donnée.

L’utilisateur peut désormais, grâce une directive, cibler un fichier ou un répertoire à charger en mémoire. Cette directive spécifie un nombre de replication, un time-to-live (TTL) et un pool, qui permet d’ajouter des contraintes supplémentaires (sécurité, quota et TTL maximum).

Un point intéressant est qu’il s’agit d’un véritable cache distribué. Le NameNode (master du système de fichier) possède une vue complète des caches disponibles. Hadoop optimise l’accès à la donnée en déplaçant le traitement à la donnée et non l’inverse. Avec ce système de cache, le fonctionnement sera identique. Si un noeud possède la donnée qui vous intéresse en cache, alors il sera prioritaire pour exécuter votre traitement.

Dans le future, on peut s’attendre à un système de cache plus fin : au niveau du block ou même en dessous. De même, il pourrait être envisageable d’avoir un système détectant de lui-même quelles données doivent être mise en cache en priorité.

Pour en savoir plus, la documentation de référence est celle du projet Apache Hadoop concernant le « centralized cache management ».

Big Learning : recommendation par recherche (Mahout + Solr)

En fin février, nous vous avions présenté la sortie de Mahout 0.9. Un des éléments à retenir était le lancement d’une nouvelle approche pour construire un système de recommendation en utilisant un moteur de recherche (Solr en pratique).

Si vous avez assisté à une présentation de Ted Dunning récemment vous savez tout. Pour ceux qui veulent se rattraper, des ressources sont en lignes. Vous pouvez bien sur consulter les slides et le jira MAHOUT-1288 mais désormais un ebook gratuit est disponible décrivant cette approche : Practical Machine Learning : Innovations in Recommendation.

Le principe est relativement simple. Hadoop avec Mahout fait le travail lourd : trouver les relations importantes à retenir dans vos données. Ces découvertes sont ensuite chargées dans le moteur de recherche. Et une requête de recherche fournit alors la recommendation par le biais de ses résultats. Les données, la formulation de la requête et le post-traitement des résultats vont bien sur influencer grandement la qualité de la recommendation. Certains de ces aspects sont discutés dans ce livre. L’ajout de bruit (dithering) permet de briser le cercle vicieux du système recommandant ce qu’il a déjà recommandé car c’est que l’utilisateur à choisit. Un mécanisme d’anti-flood permet de diversifier les recommendations.

Le livre bien entendu mentionne plusieurs fois que tout cela est plus facile à mettre en place sur MapR (l’employeur de Ted Dunning) que sur une autre distribution incluant Hadoop. Que cela soit vrai ou pas, le livre reste tout de même un bon résumé de l’approche.

Sortie de la version GA de kibana 3

Elasticsearch vient d’annoncer sur son blog la sortie de la version 3.0.0 GA. Pour rappel, kibana est une interface html5 pour visualiser vos données présentes dans elasticsearch. Au programme de version release, pas de nouvelles key feature ce qui n’est guère excitant… Mais beaucoup de bugfixes ! Vous trouverez sur le post du blog des vidéos pour vous y mettre.

Commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.