Le Choc des Titans : Coder vs Modéliser

Publié par Louis Foucart, le 22/07/2014, dans Agile, Architecture

Dans cet article nous allons partager autour du Domain Specific Modeling (DSM), qui s’appuie sur les Domain Specific Languages (DSL, ie. langage dédié). L’objectif sera de montrer comment cette approche émergente lève l’opposition entre coder et modéliser.

Cet article sera théorique et pour faire passer la pilule, aussi un partage d’opinions, de trouvailles et reconnaissance, le but étant de stimuler votre intérêt pour la suite.

En effet, nous souhaitons que cet article soit l’introduction d’une suite d’articles sur le sujet. Cette série sera principalement pratique, avec des cas d’utilisation de Language Workbenches comme MPS de Jetbrains et d’autres modeleurs basés sur la plateforme Eclipse (Xtext etc…).

Voici le plan de cet article :

  1. “Meta” ceinture
  2. Introduction au DSM
  3. Objectifs et vieux rêves d’antan
  4. Quand tu allais, on revenait : du MDA au DSM
  5. Méthodologie et agilité
  6. Pourquoi ça peut marcher maintenant
  7. Conclusion enrichie à l’abstraction
  8. Liens
  9. Annexes

Lire la suite »


CoderDojo où comment développer from Scratch !?

Publié par Laure Bercegeay, le 10/07/2014, dans Événements

Cela fait deux fois maintenant que nous accueillons le mouvement CoderDojo. Plus de 30 enfants ont débarqué dans nos locaux du 103 à Grenelle pour découvrir ou redécouvrir les joies des premières lignes de code.

photo1 Aidés de mentors bénévoles et de leurs pairs/pères, ces développeurs en herbe, des enfants entre 7 et 15 ans, ont laissé courir leur imagination au gré de Scratch ou d’HTML.

Pendant près de 3h, filles et garçons ont collaboré, dans une ambiance conviviale et familiale, pour développer des histoires, des jeux, mettre en image leur créativité, aboutissant ainsi à une belle diversité de projets.

Boissons sucrées et bonbons de toutes les couleurs étaient également présents pour le plus grand plaisir des papilles !

Amira, Anthony, Odile, David, Stéphane et moi étions évidemment heureux de pouvoir nous investir auprès de cette organisation bénévole. Nous aimons la technologie, celle qui change le monde et enrichit notre quotidien. Il était donc tout naturel d’accompagner ces générations futures, dès leur plus jeune âge, vers les environnements techniques de demain qui les passionnent déjà.

Nous ne comptons pas en rester là et entendons bien continuer à nous impliquer dans la démarche !

Alors, rendez-vous en septembre à Valtech pour une nouvelle session de code !

Laure Bercegeay - Chargée RH / Recrutement Valtech


Agile PlayGround Paris #15

Publié par Cédric Chevalerias, le 30/06/2014, dans Agile, Événements

Bonjour à tous,

Que diriez vous d’un dernier Agile Playground avant la pause estivale?

Il parait que les parisiens sont plutôt aoutiens, nous vous proposons donc de nous rejoindre dans les locaux de Valtech le mercredi 16 juillet pour l’APG #15.

Les propositions de sessions se font sur ideascale.

Les inscriptions se font sur meetup.

N’hésitez pas à proposer des jeux connus ou moins connus, que vous maîtrisez déjà, ou que vous voulez tester avec une assistance bienveillante pour les améliorer, etc.

Vous pouvez aussi proposer un court ice-breaker qui mettra la foule dans de bonnes conditions pour la soirée ;-)

Au programme
18h30 – 19h00 : Accueil
19h00 – 19h15 : Check-In
19h15 – 20h45 : les jeux
20h45 – 21h30 : Apéro

 

 

 


API Stream Java 8 – Partie 4

Publié par Olivier Rousselot, le 13/06/2014, dans Java

Comme nous l’avons vu dans les parties précédentes (1ère partie, 2ème partie et 3ème partie), l’utilisation des streams est très simple mais il est toujours intéressant de regarder un petit plus en profondeur pour d’une part éviter les pièges, le plus souvent inhérents à la programmation multi-threads, et d’autre part, optimiser le traitement pour rendre celui-ci le plus rapide et le moins consommateur de ressources possible.
Pour finir, nous analyserons la problématique de l’intégration des streams dans un serveur d’applciations.
Lire la suite »



API Stream Java 8 – Partie 2

Publié par Olivier Rousselot, le 11/06/2014, dans Java

Nous avons vu comment et pourquoi créer des lambda-fonctions (API Stream Java 8 – Partie 1), nous savons donc créer des outils, il ne nous reste plus qu’à les utiliser.
Dans cette partie, nous allons définir ce qu’est un stream et comment l’obtenir puis nous détaillerons l’ensemble des opérations intermédiaires disponibles.
Lire la suite »


API Stream Java 8 – Partie 1

Publié par Olivier Rousselot, le 10/06/2014, dans Java

L’API Collection de Java fournit tout ce qui est nécessaire au type de rangement des données (listes, tables associatives, piles, files, ordonnées, etc…) et à leur manipulation simple (ajout, suppression, parcours, …). Pour un traitement plus complexe (filtrage, transformation, …), il est nécessaire de se tourner vers des API externes (Google Guava, Commons Collection, …). Celles-ci ont l’avantage d’être très bien documentées et sont très simples à utiliser.

Un filtrage de collection avec Guava s’écrit par exemple de la manière suivante :

Set<integer> set = Sets.newHashSet(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Set</integer><integer> evenSet = Sets.filter(set, new Predicate</integer><integer>() {
    @Override
    public boolean apply(Integer i) {
        return (i % 2 == 0);
    }
});
</integer>

En dehors du fait que chaque API externe a été obligée de créer ses propres interfaces de sélection (Predicate<T>) et de transformation (Function<F, T> ou Transformer<I, O>), il est nécessaire de créer une classe (anonyme ou pas) là où une simple fonction est nécessaire la plupart du temps. Or il n’est pas possible d’écrire une (lambda-) fonction en Java….jusqu’à java 8 !

Nous allons voir dans cet article, découpé en quatre parties, comment Java 8 introduit la programmation fonctionnelle. Dans un premier temps, il est nécessaire de présenter les toutes nouvelles lambda-fonctions (ou plus simplement lambda) et les interfaces fonctionnelles associées. Nous parcourons ensuite, de manière complète, les possibilités de la nouvelle API de traitement de flux, l’API Java Stream (qui n’a rien à voir avec les InputStream et les OutputStream). Pour finir, nous examinerons plus en profondeur la structure de celle-ci, son implémentation, ses contraintes, ses optimisations, …
Lire la suite »


Android Studio, un an après

Publié par Benjamin Gonin, le 4/06/2014, dans Android, Mobile

Android Studio, un IDE puissant

android_studio_logo-300x300

A moins d’un mois de la prochaine Google I/O, cela va bientôt faire un an que Google propose gratuitement un nouvel environnement de développement Android : Android Studio. Jusqu’à maintenant Google proposait ses outils (SDK et plugins) pour l’environnement Eclipse qui était le seul IDE disponible, maintenant il développe et propose un environnement de développement (IDE) basé sur Intellij IDEA qui permet de développer des applications Android, toutefois celui-ci n’est toujours pas fini et est en “early preview”, mais il est plutôt stable et performant pour travailler avec.

Android Studio propose pas mal d’améliorations par rapport à Eclipse, un nouveau système de build (Gradle), un éditeur puissant avec du refactoring spécifique, des inspecteurs de code spécifiques, une interface moderne, tout ce qu’il faut pour signer ces apps, Proguard, des templates, un éditeur de layout qui permet de visualiser sur des écrans de résolutions variées simultanément et aussi selon les langues, un accès direct aux services Google, … et il est stable et rapide !

La plupart des autres fonctions basiques sont assez similaires que dans Eclipse, avec des fois certaines améliorations ou changements et on s’y retrouve assez facilement.

Pour l’installer et commencer :

Installation : http://developer.android.com/sdk/installing/studio.html

Guide : http://developer.android.com/sdk/installing/studio-tips.html

Article sur le blog officiel : http://android-developers.blogspot.fr/2013/05/android-studio-ide-built-for-android.html

Edit du 27/06 : Android Studio est passé en Beta en version v0.8

Lire la suite »


Continuous Delivery un peu de théorie

Publié par Radwane Hassen, le 14/05/2014, dans Agile, Architecture, Intégration, Valtech

co-auteurs de l’article : Radwane Hassen & Philippe Miossec & Nicolas Bétheuil

Au mois de mars, Valtech a eu le plaisir d’accueillir au sein de ses locaux une formation sur le Continuous Delivery donné par Seb Rose et Robert Chatley de la Kickstart Academy.

Nous allons profiter de cet événement pour voir en détail ce qu’est le Continuous Delivery et comment le mettre en oeuvre au sein de son projet.

Le Continuous Delivery : Qu’est ce que c’est ?

Il est déjà opportun de différencier deux notions : le Continuous Deployment du Continuous Delivery (Déploiement vs Livraison).

Le déploiement continue consiste à mettre en production à chaque changement, quelque soit le changement. La livraison continue, quand à elle, s’attache à raccourcir le cycle d’obtention de la valeur, en s’intéressant à l’intégralité de la chaîne (pipeline) permettant de créer cette valeur.

Afin de délivrer cette valeur, il est alors question d’automatiser les différentes étapes de son pipeline de façon à pouvoir déployer en production à tout moment. Car en premier lieu, il est surtout question d’être capable de déployer dès qu’on le souhaite, rapidement, souvent et ceci avec un risque minimal lié à la procédure (erreur humaine, problème lié à l’environnement, problème de package…).

Source from Yassal Sundman blog

Source from Yassal Sundman blog – En Continuous Delivery, le déclenchement de la mise en production est manuel

Lire la suite »


Valorisez vos logs applicatifs en 15 minutes

Publié par Paul-Emmanuel Faidherbe, le 9/05/2014, dans Intégration, Valtech

Comment centraliser, analyser et exploiter un grand volume de logs répartis sur un parc applicatif étendu et hétérogène?

Grâce à Logstash et MongoDB, il est très aisé de mettre en place un véritable système de récolte et d’exploitation des fichiers de logs.

application

logstash Logstash est un outil spécialisé dans l’analyse de contenu et permet d’extraire toutes les informations essentielles (dates, niveau d’information, messages, champs personnalisés…) des flux de logs qui lui sont envoyés.
mongo MongoDB apporte ici les points clés du NoSQL, à savoir la capacité d’absorption d’un grand nombre de données ainsi que le stockage orienté document “schemaless”, c’est-à-dire la possibilité de stocker tous types d’objets, sans structure définie à l’avance (grâce à la notation JSON). Qui plus est, la restitution de son contenu est faicilitée par son API REST très simple d’utilisation.

Lire la suite »