Blog

You are browsing the archive for 2010 April.

Le podcast Les Cast Codeurs

April 25, 2010

J'ecoute les Cast CodeursPour m’informer de l’actualité, j’utilise principalement des sources écrites comme InfoQ ou des blogs spécialisés.

Mais il est parfois pratique d’avoir une forme audio à écouter : sur l’autoradio, en marchant pour aller prendre son train, pendant qu’on prépare le repas ….

Les Cast Codeurs proposent un podcast audio en français sur l’actualité du monde Java.

Ce podcast est géré par Emmanuel Bernard (JBoss, Hibernate), Guillaume Laforge (VMWare, Groovy),  Antonio Goncalves (freelance, auteur d’ouvrages sur JEE), Vincent Massol (XWiki, Maven).

Selon les épisodes, il s’agit d’un format Nouvelles ou Interview sur un sujet précis.

Le format Nouvelles est une table ronde avec les Cast Codeurs :

  • discussion sur les nouvelles du monde Java : les membres de l’équipe présentent les sujets d’actualité
  • la sélection des outils de la semaine : un outil que l’on utilise au quotidien pour coder ou travailler
  • Java, les mains dans le cambouis : une discussion détaillée sur un sujet peu connu des développeurs

Je ne résiste pas au titre du dernier épisode, le 20  : Oracle je t’aime moi non plus et l’invasion des lapins

Le format Interview est dédié à un sujet précis. Les derniers épisodes parlent :

Le podcast cite régulièrement Duchess (et d’ailleurs au passage un grand merci de nous toutes à l’équipe des Cast Codeurs).  Je vous convie donc à leur faire des retours sur les épisodes passés, poser des questions et proposer des thèmes à traiter.

Comment  ?

Vous pouvez vous abonner au Google Group lescastcodeurs ou les suivre sur Twitter @lescastcodeurs. Précisez que c’est de la part des Duchess, ça leur permettra de parler de nous avec autre chose que des sujets totalement idiots et inventés ;-)

Pour les Duchess abonnées au Google Group duchessfr, vous pouvez aussi nous communiquer vos messages pour les Cast Codeurs, on les relaiera.

    Paris Jug : retour sur la soirée Scala

    April 15, 2010

    L’AvantJUG

    Pour la seconde édition de l’AvantJUG,  nous avons eu l’honneur d’avoir un invité surprise Antonio Goncalves. Il est venu discuter avec les Duchess pendant une demi heure avant de courir aux préparations de la soirée. De nouvelles Duchess ont rejoint le groupe pour cette session. Nous étions bien moins nombreuses que le mois précédent.  Est ce à cause du thème de la soirée ?  Après avoir partagé nos points de vue sur Scala, nous nous sommes rendues à la soirée pour découvrir ce que ce langage promet.

    Première partie de soirée : Introduction à la programmation fonctionnelle avec Scala

    Avant de commencer la soirée, un petit mot sur la conférence Agile France par Sébastien Douche elle aura lieu du 31 Mai au 1 Juin 2010. Vous trouverez toutes les informations à l’adresse suivante : http://conf.agile-france.org/.

    Antonio poursuit en remerciant les sponsors du ParisJUG sans qui les soirées ne seraient pas possible. Ensuite il présente sa nouvelle recrue qui a rejoint récemment l’équipe du ParisJUG : notre Duchess Claude Falguière ! Après une rapide présentation de son parcours et de JDuchess par la même occasion :) , la présentation débute.

    20100413_scala_IMG_0185_session1Sadek Drobi, le premier speaker de la soirée, nous présente les concepts. Le but de sa présentation est de présenter les bases de la programmation fonctionnelle pas à pas. Moins formelle que les présentations habituelles, Sadek a pris le parti de présenter des exemples au fil de l’eau dans son IDE préféré.  Il commence par les types en présentant le typage des données dans Scala et notamment le principe du Duck Typing.  Il explique comment marchent les fonctions qui sont finalement toutes simples : une fonction prend n’importe quoi et renvoie n’importe quoi.  N’importe quoi signifie un type (int, string …) ou une même une fonction.  Un exemple amusant est l’utilisation d’une fonction permettant d’itérer sur chaque élément d’une liste par exemple :
    def map[A,B](list:List[A], f:Function[A,B]):List[B] {
    for (element <- list) yield f(A) } def main(args:Array[String]) { println(map(List(1,2,3), (i:Int)=>i+1))
    }

    La fonction map prend une liste et une fonction en paramètre, et applique la fonction sur chaque élément de la liste. Bien pratique, pour réaliser des traitements sur les listes.

    Evitez simplement les problèmes de nullité !

    Sadek nous présente un exemple permettant d’éviter les problèmes de nullité en Scala :

    abstract class Maybe[A] (a:A) {
    def map[A,B](f:Function[A,B]) : Maybe[B] = {
    this match {
    case Nothing() => Nothing()
    case Just(a) => Just( f(a) )
    }
    }
    }
    case class Nothing[A]() extends Maybe[A]
    case class Just[A] (a:A) extends Maybe[A]

    Le principe est que Maybe est une classe qui va englober la classe A qui peut représenter une classe quelconque. Celle ci sera manipulée dans la fonction map. Elle attend en entrée un objet,  le mot clé match permet de filtrer les données :

    • Si il n’y a rien il se fait wrapper par Nothing,
    • Sinon il se fait wrapper par Just et on lui applique la fonction.

    Pour résumer Nothing et Just vont wrapper les données en entrée, on va ainsi éviter les cas null qui vont passer dans le cas Nothing. Le concept n’est pas forcément évidemment à comprendre,  je l’avoue.

    Avec l’abstraction que permet Scala, il est possible pourquoi pas de créer des listes de fonctions. L’application de la méthode foldLeft sur la liste permet avec un objet initial d’appliquer la liste de fonction pour faire évoluer l’objet. Cela peut être très puissant pour réaliser des gros calculs !

    Une fonction est défini au fil de l’eau, réutilisable, simple et puissant pour les calculs laborieux par exemple.  Et notamment grâce aux fonctions d’ordre supérieurs (HOF : High-order function)  (ex : compose, reduceLeft, …) que fournissent Scala.
    La fonction compose permet de définir une fonction de fonction comme le “f rond g” que l’on a tous connu au lycée.

    Les strings

    Comme en Perl, la manipulation est aussi simple car Scala fournit un batterie de fonctions permettant de les traiter assez facilement. Le temps est écoulé. C’est un petit peu frustré de ne pas avoir pu nous apporter plus d’exemples que Sadek s’arrête pour la pause.

    Le buffet20100413_scala_IMG_0187_buffet120100413_scala_IMG_0188_buffet220100413_scala_IMG_0194_buffet3

    C’est maintenant le moment du buffet, tout le monde est réuni au sous sol de l’ISEP autour d’un verre et de petites collations pour faire le point sur cette première partie. Complexe ? Différent de Java ? Ce nouveau paradigme qu’apporte Scala est au milieu de nombreuses conversations.

    Seconde Partie : Scala

    Scala est un langage de programmation fonctionnelle conseillé par le papa de Java James Gosling alors pourquoi ne pas le présenter au ParisJUG ?

    Après la théorie de la première partie, Nicolas Jozwiak et Romain Maton veulent présenter les pratiques de Scala par des exemples simples et concrets.

    Pour commencer une petite présentation historique sur Scala. Son créateur Martin Odersky a débuté en créant le langage Pizza qui fournit à Java les Generics et le Pattern Matching. Frusté par les limites de Java, il a créé Scala.  Scala est un langage fonctionnel pouvant tourner sur la JVM. En Scala, tout est objet, la nullité n’existe pas et Scala est immuable. Il est fortement typé et peut déduire les types en fonction des données qu’on lui fournit. Le traitement des listes est assez puissant si l’on veut les manipuler. Et la gestion des objets XML est beaucoup plus simple.

    En pratique Nicolas s’est inspiré de son projet dans le domaine de la finance pour nous présenter la simplicité que peut apporter Scala. Grâce au Pattern Matching entre autre il a pu reconstituer le pattern Visitor très utilisé en finance de marché. Le code Scala comparé à Java est bluffant : beaucoup moins de code en Scala !

    Les acteurs (API Actor)
    C’est un objet qui vit dans la JVM, il contient une mail box dans lequel il va recevoir des messages et faire les traitements adéquats.20100413_scala_IMG_0209_session2_2

    En Java, on utilisait les threads pour les accès concurrents à une ressource. Lors de la lecture aucun problème mais pour l’écriture il faut poser un lock. Avec les acteurs, l’échange des données se fait par message et plus de problème de concurrence.
    val printActor = actor {
    loop {
    react {
    // traitement : envoi de message pour le traitement.
    }
    }
    }

    C’est une autre façon de penser les accès concurrents.

    Les traits
    Il permet d’ajouter un comportement supplémentaire à un objet voire même plusieurs comportements en enchaînant les définitions de traits.

    Exemple :
    myCar = new MyCar with ElectricalCar with DieselCar

    Les IDEs pour Scala

    20100413_scala_IMG_0205_session2_1Il existe des plugins disponibles pour nos IDEs préférés.

    • Plugin Eclipse : il fournit la coloration syntaxique, compatible Java mais il peut être amené à planter violemment sans prévenir (le bug n’est toujours pas corrigé pour le moment).
    • Plugin IntelliJ : le plugin est très bien mais un peu lent à la compilation.
    • Plugin Netbeans : peu conseillé pour le moment l’installation est douloureuse.

    Les frameworks

    • ScalaTest : pour réaliser les tests
    • Akka : un actor mais en plus puissant, 2 à 3 fois plus puissants que l’API Actor intégré dans Scala. La communauté autour de ce framework est très active ce qui lui permet de proposer des modules comme scheduler, Comet, REST, security …
    • Lift : un framework web Scala qui promet de séparer la couche présentation du code métier, le hic c’est que l’on retrouve du code présentation dans le code métier. Le framework est déconseillé aux débutants Scala, mieux vaut maitriser le langage avant d’utiliser Lift.

    Pourquoi faudrait il s’intéresser à Scala ?

    D’après Nicolas et Romain, Scala permet de fournir un code plus concis, le développement est rapide. Les tests réalisés sont plus proches du métier et les problèmes de modélisation se gèrent plus simplement. Enfin la de la concurrence peut se réaliser au travers de l’API Actor qui semble très abordables pour les développeurs.

    Les Difficultés ou Challenge (selon les points de vue)
    Ce langage vous pouvez le tester pour votre enrichissement personnel. Ce nouveau paradigme et surtout penser fonctionnel peut vous permettre d’appréhender les problèmes différemment.

    Les freins à son adoption
    La maîtrise du langage peut être un gros problème et le code peut devenir assez complexe à cause de la syntaxe et les raccourcis de code (sucre syntaxique). La courbe d’apprentissage risque d’être importante et l’intégration avec Java peut être laborieux.  Pour les applications stratégiques, il peut y avoir des réticences à intégrer un nouveau langage (les SI n’apprécient pas beaucoup les nouveautés dans un projet critique).

    Les nouveautés Scala 2.8

    Pas de compatibilités binaires avec l’ancienne version (la 2.7) mais voici quelques nouvelles fonctionnalités :

    • une nouvelle API collection,
    • REPL amélioré,
    • paramètres nommés par défaut,
    • nouveaux contrôles (breakable et break).

    Qui utilise Scala dans la vraie vie ?

    Je ne citerai pas tout le monde mais on peut parler de :

    • Twitter pour des raisons de performance (précédemment en Ruby) ce sont les acteurs envoient des tweets au follower.
    • EDF pour migrer des calculs lourds en Scala

    Vous souhaitez aller plus loin :) , voici quelques liens :20100413_scala_IMG_0222_3iemmitemps

    www.scala-lang.org
    http://www.codecommit.com/blog/category/scala
    Pour revivre la soirée, vous pouvez également visualiser la Wave d’Olivier Croisier où il a retranscrit en direct les présentations.

    La troisième mi temps

    La soirée s’est conclu par la troisième mi temps qui a eu lieu au Vavin, ça a été une bonne occasion pour discuter avec les speakers Sadek, Romain et Nicolas qui étaient présents. Et de rencontrer de nouvelles têtes. Puis tout le monde s’est séparé en attendant la prochaine soirée “Share, Build & Deploy”.

    AvantJUG d’Avril

    April 7, 2010

    Après le succès de notre première édition de l’AvantJUG, nous renouvelons l’opération ce mois ci pour la soirée Scala organisée par le ParisJUG. Pour rappel, l’AvantJUG est le point de rencontre des Duchess qui nous permet de se retrouver avant la soirée du JUG pour faire connaissance et discuter autour d’un verre. Pour la seconde édition, nous vous proposons de nous retrouver comme précédemment au Café Vavin (18 rue Vavin Paris 6). Où nous pourrions partager nos points de vue autour de ce nouveau langage, Scala, tournant sur la machine virtuelle Java qui sera le sujet de la soirée du ParisJUG.
    Nous rejoindrons ensuite les autres juggers pour poursuivre la soirée.

    Alors cette soirée vous intéresse vous aussi ? Alors voilà comment vous y prendre pour l’inscription :
    1 – Dés l’ouverture des inscriptions, foncez vous inscrire à la soiréequi se trouve sur ce lien : http://parisjug.org/xwiki/bin/view/Meeting/20100413
    2 – Une fois inscrite, prévenez nous de votre participation à l’AvantJUG en envoyant un mail à l’adresse suivante : ellene(dot)dijoux(at)jduchess(dot)org

    Bien entendu nous comptons aussi sur les Dukes pour faire passer le message à vos collègues femmes. Vous ne saviez pas comment les inviter à s’inscrire pour le prochain JUG ? Faîtes leur connaître l’Avant JUG et le JUG en leur présentant le site http://jduchess.org/fr, notre blog http://jduchess.org/duchess-france/ ou encore notre Google Group duchessfr.

    Nous espérons vous voir aussi nombreuses que l’édition précédente :)

    Covoiturez à la Soirée Scala le 13 Avril

    April 7, 2010

    Nous sommes parties de la constatation qu’il était difficile pour certaines d’affronter un retour de conférence seule dans les transports la nuit, surtout si on reste discuter autour d’un verre après. Nous avons pensé que le covoiturage pour le retour des conférences,  le JUG en particulier, pourrait aider et rendre service à tout le monde.

    L’organisation du covoiturage

    Vous venez en voiture ? Le covoiturage sera l’occasion de partager vos impressions sur les conférences et de continuer des discussions passionnantes pendant le trajet de retour.

    Personne n’a de voiture dans le coin ? Vous pouvez partager un taxi pour rentrer chez vous

    Le site Wigowiz que nous allons utiliser est très light par rapport à un site de covoiturage classique. Il fonctionne un peu comme Doodle.

    • Un événement fermé été créé,
    • Il est accessible uniquement via une url qui vous est communiquée pour chaque événement,
    • Voilà à quoi ça ressemble http://www.wigowiz.com/carte.php?m=Uqc246 . Attention ceci est un événement démo.  N’oubliez pas de vous enregistrer sur le vrai événement à la fin de cet article.

    L’inscription est ouverte à tous les participant(e)s de la conférence. Vous pouvez vous inscrire comme conducteur ou passager de manière très simple. Ensuite vous pourrez échanger par mail via le site si vous voulez vous organiser pour le retour. Les Duchess seront là dans la soirée pour vous aider à vous retrouver.

    Quelques conseils pratiques :

    • Indiquez dans le commentaire à quel moment de la conférence vous voulez partir et vérifier avec vos covoitureurs quel horaire convient à tous,
    • Si vous ne voulez pas que votre adresse et votre email apparaissent, cochez les cases masquer mon email/masquer mon adresse,
    • Vous pouvez créer un compte Wigowiz après vous être inscrit.  C’est l’email qui servira d’identifiant de compte par la suite,
    • Si vous ne souhaitez pas indiquer votre identité sur ce site, utilisez un pseudo mais indiquez nous votre identité réelle par email à l’adresse covoiturage.duchessfr@gmail.com pour que l’on puisse vérifier dans les listes de présence de la conférence si on ne vous trouve pas,
    • Prévoyez un moyen alternatif de retour car il arrive que les inscrits aux conférences ne puissent pas venir

    Les Duchess s’occupent de la logistique de création de l’événement sur le site et vous aiderons à vous retrouver sur place. Ceci dit, le covoiturage reste sous votre entière responsabilité en tant que conducteur ou passager. Il n’engage pas plus la responsabilité des organisateurs des conférences où cette possibilité est mise en place.

    Les informations pour le JUG Soirée Scala le 13 Avril

    Pour le JUG Soirée Scala, l’URL participant est http://www.wigowiz.com/carte.php?m=sgc245 .

    S’il vous plait, n’enregistrez pas de participations farfelues sur cet événement, en particulier comme conducteur. Vous pouvez utiliser le lien démo donné plus haut pour tester le site.

    Rappel de l’email de contact : covoiturage.duchessfr@gmail.com. N’hésitez pas à nous contacter en cas de problème.

    Duchess France quitte le JUG !

    April 1, 2010

    (Poisson d’Avril)

    Les prises de position répétées d’Antonio Goncalves leader du Paris JUG contre Spring sur Twitter (@agoncal) le 30 Mars 2010 ont passablement agacé les JDuchess.

    Une réunion exceptionnelle de l’équipe JDuchess France s’est tenue hier soir pour décider de la position à tenir.

    Compte tenu du fait que ce n’est pas la première fois que le JUG et son leader barbu défendent un modèle open source totalement incontrôlable et une spécification J2EE définie sans aucune femme, JDuchess a décidé à l’unanimité de se séparer des JUGs.

    Dans ce combat nous avons trouvé un allié auprès de la société Oracle qui partage nos points de vue.

    La deuxième décision de cette séance exceptionnelle a été de renommer JDuchess en ODuchess pour mieux faire valoir notre sensibilité.

    Ces décisions n’ont pas été faciles à prendre mais nous devons faire respecter nos valeurs.