Archive

Archives pour la catégorie ‘Divers’

Retour Socrates France 2016

Ayant eu le plaisir de participer à l’édition 2016 de Socrates FR, je vais vous raconter le déroulement de cette conférence.

Qu’est-ce que Socrates FR ?

Socrates FR est l’évènement Socrates Français faisant suite à d’autres évènements Socrates du même type ayant eu lieu notamment en Allemagne, Angleterre et Belgique.

Un évènement Socrates est une « unconférence », appelé plus généralement conférence « open space », dont le principe est que les participants vont se retrouver géographiquement et temporellement ensemble sans avoir planifié ce qui doit s’y dérouler.

La conférence Socrates a pour thématique le Software Craftsmanship dans son sens large, c’est un évènement de partage, d’échanges et de rencontres.

Pour un bon fonctionnement, les unconférences comme Socrates ont besoin d’une démarche agile permettant l’organisation des journées ainsi que de facilitateurs pour appliquer la démarche et gérer ce qui ne rentre pas dedans.

L’évènement Socrates FR 2016 s’est déroulé du 27 au 30 octobre dans le charmant château de Rochegude avec un peu moins d’une cinquantaine de participants.

socrates

Lire la suite…

Categories: Divers Tags:

Use Agile Cards to avoid double entry !

 

Visual Management and JIRA : Don’t waste your time with double entry !

 

Agile coaching usually begins with the establishment of a Visual Management.
This first step will improve the team communication and collaboration but you won’t probably stop there.

IMG_1366 (1)

Lire la suite…

Drools : Manipulation de l’ordre de déclenchement des règles

Dans l’article précédent (http://blog.viseo-bt.com/drools-mise-a-jour-de-faits-et-boucles-infinies/), nous avions découvert l’utilisation des attributs dans une règle pour éviter les boucles infinies et la mise à jour de faits dans la mémoire de travail.

Nous avions à la fin 3 règles : 2 règles pour augmenter le nombre de pros et de cons et une règle pour déterminer si un client était solvable ou non.

Cette dernière règle doit forcément être déclenchée en dernier, pour que le raisonnement soit correct. Et nous voyons dans notre résultat affiché dans la console que c’était bien le cas.

Nous pouvons supposer que c’est parce que c’était la dernière règle écrite dans notre fichier de règles. Mais si nous modifions l’ordre des règles, si nous passions notre règle « a droit à un prêt » au tout début, qu’est-ce qui se passe ?

Lire la suite…

Categories: Divers Tags:

Drools : Mise à jour de faits et boucles infinies

Dans l’article précédent, nous avions fait nos premiers pas avec Drools, dans le cas d’une banque qui doit déterminer l’éligibilité à un prêt d’un client.

Nous avions écrit deux règles pour déterminer le nombre de pros et de cons d’un client. Mais une fois que nous avons ce nombre de pros et cons, il faut bien ajouter une règle pour dire si au final, le client est solvable ou pas. Rajoutons alors cette règle :

Lire la suite…

Categories: Divers Tags:

Démarrer avec Drools et autres astuces

Pour le projet de recherche Synodos (http://www.viseo.com/fr/offre/le-projet-synodos), nous avons choisi Drools comme moteur de règles, un framework simple, souple et puissant. C’est pourquoi j’ai décidé de partager mon expérience à travers une suite de trois articles: le premier présentant Drools et comment débuter avec, et les 2 autres présentant quelques astuces dont j’ai eu besoin au cours de mon projet :

Article n°1 : Démarrer avec Drools (celui-ci donc)

Article n°2 : Mise à jour de faits et boucles infinies (http://blog.viseo-bt.com/drools-mise-a-jour-de-faits-et-boucles-infinies/)

Article n°3 : Manipulation de l’ordre de déclenchement des règles (http://blog.viseo-bt.com/drools-manipulation-de-lordre-de-declenchement-des-regles/)

 

Article n°1 : Démarrer avec Drools

 

Lire la suite…

Categories: Divers Tags:

Programme de l’EA User Group Paris 2015 disponible

eaug_france_2015

La liste des présentations et des orateurs pour l’EAUG à Paris le 17 Septembre 2015 est disponible.

Les inscriptions sont ouvertes sur le site EventBrite au tarif de 75€ pour la journée.

 Programme EAUG Paris 2015

8:30 Inscriptions, café
9:15 Message d’accueil
9:25 Gregory Weinbach
Lean Enterprise Architecture
10:10 Pause café
10:40 Pascal Roques, Dominique Travel
MBSE avec SysML : retours du terrain
11:25 Pause
11:35 Tobias Ivarsson
Aligning international standards TOGAF® ADM and ArchiMate® in Sparx EA:
A Case Study from the Automotive Industry
12:20 Pause déjeuner
13:50 Guillaume Finance
Documentation Agile avec eaDocX Collaboration
14:35 Pause
14:45 Albert Janssens & Michel Gibelli
Mise en pratique de l’Ingénierie Dirigée par les Modèles à l’aide d’EA et des technologies MDG
15:30 Pause café
16:00 Rodrigo Nascimento
Information Modelling to Canonical Messaging made easy
16:45 Guillaume Miard
Nos convictions en terme d’architecture d’entreprise.
Retour d’expérience de la mise en oeuvre d’EA chez plusieurs clients (PMU, Orange)
17:30 Remerciements
17:40 Pause finale
18:05 Fin
Categories: Divers Tags:

Intégration de code Python dans des applications Java ou .Net

Une particularité de Python est qu’il peut être exécuté sur plusieurs environnements techniques, grâce à ses différents interpréteurs. Ainsi, on pourra importer des librairies et exécuter le code nativement, ou à travers des machines virtuelles Java ou .Net, entre autres…

Avec des librairies système

CPython est l’interpréteur par défaut. Son nom vient du fait qu’il est écrit en C, et il permet d’utiliser toute librairie compilée pour le système (dont les librairies C).

pythonGreeter.py
    class PythonGreeter:
        __defaultHello = "World"
     
        @staticmethod
        def sayHello(helloWho=__defaultHello):
            print("Hello", helloWho, "!")
     
    PythonGreeter.sayHello()
    PythonGreeter.sayHello("Jack")
$ python pythonGreeter.py
Hello World !
Hello Jack !

Lire la suite…

Mix-IT 2015 – Le langage Ceylon

logo-mixit

Le langage Ceylon étant présenté dans l’une des nombreuses et intéressantes conférences du Mix-it. Au passage, je ne peux que vous conseiller d’assister au Mix-it pour vous tenir au courant des nouveautés dans le monde du Java et de l’agilité, mais pas uniquement.

Revenons donc au langage présenté :

Origine du langage

ceylon-logo
C’est un langage créé par Gavin King et publié par Red Hat sous licence Apache v2 depuis 2011. Il est actuellement en version 1.1.

Les points importants de Ceylon :

  • Il tourne sur la JVM et sur un moteur JS
  • Il est complètement interopérable avec Java et Javascript: on peut appeler du code Java depuis Ceylon, et on peut appeler Ceylon depuis du Java.
  • Il a une syntaxe qui ne déroute pas un programmeur Java, mais avec de fortes évolutions : l’inférence de type, le type union, les properties, les modules, le générique réifié, les opérations, et de nombreuses évolutions sur la gestion des types d’une manière générale.
  • Il a son propre dépôt : Herd qui est le pendant de Maven central (avec une publication facilitée par rapport au dépot Maven)
  • Il s’intègre à JEE ou Vertx

 

Ceylon, le langage de programmation

Ce langage basé sur la JVM, peut-être vu comme une amélioration de Java, même s’il est bien plus que ça.

 

Le langage et sa syntaxe

Dans les amélioration du langage, on retrouve des concepts de Java, C#, aussi un peu de Scala :
– Les modules : cela permet un découpage au sein du projet, et également de déclarer les dépendances au sein du langage. On va retrouver cette notion en Java 9
– les properties : comme en C# inutile de déclarer getter et setter
– inférence de type : inutile de répéter le type de la variable lorsqu’on l’affecte dans une déclaration, une boucle for etc.
– les métadonnées : on peut faire référence à un attribut par une métadonnée (pour hibernate par exemple) sans avoir à générer une classe.
– les expression lambda
– operations : sur les map par exemple, on utilise map["clef"] au lieu de map.get("clef")

Voir des exemples de code ici :
http://try.ceylon-lang.org/

Exemple: les opérateurs définis simplement à l’aide d’une interface (ceux qui ont manipulé le BigDecimal comprendront l’intérêt)

 

class Product(String name, Float price) satisfies Comparable {
  shared actual String string = name;
  shared actual Comparison compare(Product other) => price <=> other.price;
  shared actual Boolean equals(Object other) {
    if (is Product other) { return price==other.price; }
      return false;
    }

  shared actual Integer hash => price.hash;
}

 

Environnement de développement

Eclipse dispose déjà de son plugin de développement Ceylon. Le plugin pour IntelliJ est en cours de réalisation.

En ligne de commande, on a une commande unique : « ceylon » avec des sous commandes, un peu dans l’esprit de git, ce qui permet d’avoir rapidement une liste exhaustive des sous commandes possibles.

$ceylon compile … compiler un programme Ceylon
$ceylon run … le lancer le programme Ceylon

 

Environnement d’exécution

On peut intégrer Ceylon en tant qu’exécutable standalone bien sûr, mais aussi :
– au sein d’un environnement JEE
– au sein de Vertx, le nouveau serveur asynchrone.

Etant donné qu’il se compile en bytecode, on peut parfaitement l’intégrer dans un environnement d’exécution Java ou Javascript, pas besoin de runtime Ceylon.

 

Le mot de la fin

Ce qui m’a vraiment impressionné dans ce langage, c’est son approche simple autour des « manques » de Java: les properties, les métadonnées.
Cette approche est intéressante et contrairement aux autres langages, il ne remet pas tout en question, comme ça peut être le cas avec Scala ou jython.

Ce qui me donne envoie d’essayer, c’est aussi la possibilité d’intégration en Javascript.

En terme d’intégration web, je vois cette technologie sur une approche de type Ceylon/Angular en remplacement de Java/Angular.

En conclusion, je trouve ce langage plein de promesses (une V1.3 à venir fin 2015) avec une intégration parfaite dans nos environnements Java/Web actuels,
avec en plus la possibilité d’utiliser le tout nouveau Vertx à l’aide du module Cayla : à essayer !

Categories: Divers, Java EE Tags:

Une introduction à Python

Le langage Python a été conçu à partir de 1989 par Guido van Rossum, et est actuellement maintenu par la Python Software Foundation, sous la coupe de son benevolant dictator for life.Python

La principale philosophie derrière le langage est d’être simple à utiliser, aussi bien par sa lecture que son écriture. D’ailleurs, son nom vient de l’émission “Monty Python’s Flying Circus”, comme pour illustrer l’état d’esprit de ses utilisateurs.
Historiquement successeur du langage ABC, il s’en sert à la fois comme modèle et anti-modèle, reprenant certains traits comme la structure par indentation, mais évitant d’autres tels que son caractère monolithique.

Historique

La première version est publiée en janvier 1994, et inclut notamment la gestion d’exceptions et quelques outils repris de Lisp. D’autres éléments de ce langage y seront ajoutés par la suite.
La deuxième version est publiée en octobre 2000, et introduit plusieurs éléments repris de langages fonctionnels, tels que la liste en compréhension, et se rapproche du Haskell du point de vue de la structure, à la différence de la préférence pour les mots clés plutôt que la ponctuation. C’est également dans cette version qu’apparait le garbage collector. Dans la version 2.2, les types et les classes sont regroupés dans une hiérarchie unique; le langage devenant véritablement orienté objet.
La troisième version est publiée en décembre 2008, avec pour objectif de retirer les défauts du langage, ainsi que de retirer les implémentations redondantes de certaines fonctionnalités. Malheureusement, certaines modifications ne permettant pas de conserver une compatibilité descendante, les versions 2 et 3 doivent coexister pour une certaine durée.

Lire la suite…

Categories: Divers Tags:

Quand Agile rencontre Craftsmanship

Faisant suite à un premier article sur le lieu, l’ambiance de la conférence, puis un second sur une approche psychologique de l’Agile, le clap de fin de la série de retours de l’Agile Tour Paris 2014 se fera autour de l’artisanat logiciel.

logo

 

L’artisanat logiciel, aussi connu sous le nom du Craftsmanship

Il est temps d’aborder le second grand axe qui a retenu mon attention lors de cet Agile Tour Paris, une conférence dont le sujet est le « beau code » : Travailler avec l’existant ou comment s’en débarrasser, présentée par un développeur quelque peu expérimenté (15 ans !), Sam Cranford.

Lire la suite…