insideIT.fr : le blog des architectes IT de SFEIR

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 17 août 2012

Jug Summer Camp 2012

C'est le 14 septembre qu'aura lieu la 3ème édition du Jug Summer Camp. Le Jug Summer Camp, qu'est ce que c'est ? C'est la conférence autour de java (mais pas seulement) de la rentrée. Si vous voulez profiter des derniers rayons de soleil à La Rochelle tout en venant parfaire vos connaissances technique, c'est le lieu idéal.

Le planning vient d'être terminé et est disponible ici.

Pour cette année, je vous recommande 2 sessions qui seront présentées par des Sférien(ne)s :

  • La Dartologie, découverte du langage Dart (Nicolas François et Guillaume Girou) : Premier aperçu du langage Dart de Google, adapté aux applications web modernes. Présentation des fonctionnalités principales du langage, live coding et démo.
  • Programatoo pour les grands : how your kid can code ? (Audrey Neveu et Ludovic Borie) : Les geeks sont de grands enfants, c’est bien connu. Il n’y a qu’à voir leur passion pour les Lego et autres robots en tout genre pour s’en convaincre. Mais les geeks d’aujourd’hui sont aussi des papas et des mamans ! Ces mêmes parents ont du découvrir la programmation par eux-même, à l’école ou à la maison, au travers d’ateliers, de clubs, de magazines, etc… Mais aujourd’hui, alors que l’ordinateur est omniprésent dans notre environnement, et apprivoisé par le plus grand nombre, nous nous apercevons que la programmation n’est toujours qu’une science destinée uniquement à ceux qui ont envie d’aller plus loin dans l’informatique... Comment faire comprendre à votre enfant votre passion pour l’informatique et pour votre métier ? Comment lui montrer que tout ce qui est pour lui totalement naturel (facebook, youtube, google, word, …) est en fait le résultat du travail de personnes comme nous ? Comment lui donner envie de prendre le contrôle de son ordinateur, cette machine qui lui est si familière et à laquelle on ne prend pas toujours la peine de l’initier correctement ? Cette session “pour les grands” sera pour nous l’occasion de vous partager nos retours d’expériences, de faire un tour d’horizon des outils existants avec démos et enfin de vous présenter les initiatives déjà existantes. Que vous ayez simplement envie de partager votre passion avec votre (vos) enfant(s) ou que vous souhaitiez allez plus loin et monter des ateliers, cette session est pour vous !

Il reste encore quelques places pour vous y inscrire.

Si les sujets dart et programatoo vous intéresse, n'hésitez pas à cercler nos pages Google+ :

lundi 21 mai 2012

Duchess France fête ses deux ans le 30 mai !

duchessfr_logo_carre_anniversaire_2.png

Duchess France fêtera son deuxième anniversaire le 30 mai prochain à l’ECE, à partir de 19h30 : l’occasion pour vous si vous ne connaissez pas encore le groupe de venir rencontrer l’équipe et surtout de vous amuser autour d’une nouvelle édition du Trivial Java !

Le Trivial Java, qu’est ce c’est que ça ??

Le Trivial Java c’est un jeu machiavélique inventé et réalisé par les Duchess durant lequel des équipes de courageux gladiateurs-développeurs s’affrontent entre eux autour de questions sur Java, son écosystème, les Duchess et tous les sujets qui peuvent préoccuper le geek actuel. La bataille est rude mais la victoire vous assure gloire et respect à vie.

Une soirée pour filles ?

C’est une soirée Duchess donc bien sûr … que non ! Comme pour toutes les soirées Duchess, il n’y a qu’un seul critère d’entrée : être développeur et fier de l’être ! Néanmoins si vous avez dans votre entourage des collègues féminines qui ne connaissent pas encore Duchess, c’est une excellente occasion de leur montrer que nous ne sommes pas un groupe féministe qui organisons d’obscures soirées militantes pour la domination du monde par les femmes, mais bel et bien un groupe de geekettes uniquement préoccupées par la qualité de notre code et la domination du monde par les développeurs en général, pas que les développeuses :D

Que dois je faire pour venir ?

Une seule chose, vous inscrire ici et apporter votre bonne humeur le 30. Facile non ?

  1. java #duchess #france #soirée #anniversaire

mercredi 30 novembre 2011

Sfeir à Devoxx

10 ans … Voilà 10 ans que vers cette période de l’année, plus de 3000 passionnés se réunissent à Anvers pour la plus grosse conférence autour de la plateforme java. Elle se découpe en 2 parties : université et conférence.
Pour moi, c’était ma 3ème participation. Par contre, cette fois ci, j'y suis allé pour la semaine complète avec mes collègues Vincent Bostoen et Benito d’Almeida. Les autres Sfeiriens, eux, nous ont rejoint le mercredi. Au total, 15 Sfeirens étaient présent. Même si nous sommes partis 2 jours avant les autres, nous avions tout de même le même point de rendez-vous avant le départ. Malgré une petite mésaventure dans les transports en commun Anversois, nous sommes arrivés à bon port au cinéma multiplexe où a lieu la conférence.
Cette année, gros changement dans l’organisation : au lieu d’un simple badge avec de petits tickets à échanger contre les repas, nous avons reçu un bracelet marqué de notre nom et d’un code barre. Heureusement, ce bracelet était waterproof car nous devions le garder au bras pendant la semaine entière.
C’est donc le mercredi qu’à la station de tramway nous avons rencontré nos autres collègues pour la 2ème partie de l’aventure : la conférence. Celle ci a commencé par l’habituelle keynote de Stephan Jansen, l’organisateur. Pour finir son discours, il nous a montré une vidéo. On y reconnaît quelques têtes connues : les organisateurs du Paris JUG... puis s’affiche “Devoxx France” … Et oui, au mois d’avril, nous aurons une conférence affiliée à Devoxx, ici à Paris, avec 75% des sessions en français. Sfeir est d’ailleurs sponsor de l’évènement.
Le retour s’est fait le vendredi après midi, après une semaine plutôt fatigante.


Mes impressions globales :

  • On sent vraiment que Google est partenaire : nous avons eu beaucoup de sessions autour d’Android et Html5.
  • Même chose en avec le duo Spring Source/Cloud Foundry
  • Les langages jvm ont du succès : Scala a eu droit à beaucoup de sessions et remplaçait même java pour des exemples de codes. Ceux un peu moins populaires : Fantom et Clojure ; et les petits nouveaux : Kotlin et Ceylon venaient se présenter.
  • Moins de sessions cloud que les années précédentes.
  • Plus d'animations aux stands : course de petites voitures sur circuit électrique, roulette de casino virtuelle, ...
  • Pas de grosses annonces (mis à part Devoxx France)
  • Comme toujours, beaucoup de monde.
  • De plus en plus de français.

Parmi les sessions qui m'ont le plus intéressé :

  • JAX-RS 2 qui disposera d'une (meilleure) intégration avec d'autres apis comme Bean Validation (JSR-303), et surtout d’une partie cliente.
  • MongoBD. Je l'avais récemment découvert pour un POC où je voulais stocker des données en ligne, la session m'a permis de mieux voir les possibilités qu'il offre.
  • Performance et usabilité Android : beaucoup de conseils divers de développement à ne pas oublier si l’on veut une application qui soit ergonomique et performante.
  • Android sur Google TV, même si on est loin d'avoir ces télévisions aussi répandues que des smartphones, il est tout de même intéressant de voir les enjeux et l'ergonomie.

Pour ceux qui n’ont pas pu venir et qui seraient intéressés pour revoir les sessions, ou pour ceux qui souhaitent voir certaines sessions qu’ils n'auraient pas pu voir : il y a Parleys. Ce site offre en effet la possibilité de revoir les sessions de Devoxx, mais aussi de certains jugs locaux. Les sessions Devoxx seront disponibles gratuitement pour ceux qui y ont participé, via abonnement pour les autres. Il faudra quand même patienter jusqu’à la fin de l'année pour qu'elles soient disponibles....



Photo par Pierre-Antoine Grégoire.

mercredi 22 juin 2011

Bilan Cloud Camp 1 chez Sfeir

C'est le 30 mai dernier qu'a été organisé le 1er Cloud Camp. Plus de 50 personnes étaient présentes au rendez vous. A l'arrivée, un accueil convivial avec des cacahuètes et boisson attendaient les invités. La soirée commence avec une présentation de Kohsuke Kawaguchi, sur le build en parallèle avec Jenkins.

 



Dans la foulée, Steven Noels lui aussi vient aussi nous parler de son bébé : Lily


C'est autour de pizza que nous nous remettons de nos émotions, ce qui est aussi l'occasion de discuter entre différentes personnes présentes. C'est après, s'être bien rempli l'estomac que la soirée, s'est poursuivies etlLes sessions camp organisées furent :
  • Forplay : le framework de Google pour réaliser des jeux pour des cibles Gwt/Android/Flex/Swing
  • Retour d'expérience sur Appengine
  • Mvp4g
  • Démo de Lilly
  • CloudBees

Le Bilan que je fais de cloud camp est très positif et a plus au participant. Nous avons vu défiler les tweets lors des présentation de nos guest start. Et quelques sujets de blog de participants d'Exilys sur Lily et ForPlay. D'autres sessions, seront probablement organisée. Nous espérons vous y voir.

mercredi 1 juin 2011

Soirée JDuchess le 7 juin

Ca y est ! La marmite, le rendez-vous régulier des JDuchess, est lancée. Le premier opus aura lieu mardi 7 juin dans les locaux de SupInfo (23 rue du Château Landon, 75010 Paris – à côté de gare du nord). Au programme, deux tracks en parallèle : un atelier sur le framework de tests unitaires Mockito animé par Mathilde et un open-space.

Qu’est-ce qu’un open space ? C’est un peu comme un barCamp à part que les sujets sont présentés au début et que l’on ne traite que les sujets les plus populaires pendant un temps limité. Le but essentiel est de partager et de débattre. Tous les sujets autour de Java et de l’IT sont les bienvenus. Pour vous donner des idées, voici quelques pistes possibles :

  • une problématique technique que vous avez rencontrée
  • un super outil qui a changé votre vie de développeur
  • votre sujet de veille préféré
  • ou une problématique relationnelle (ex: comment travailler avec une personne au caractère difficile ?).

N'oubliez pas de vous inscrire, les places sont limitées !

lundi 9 mai 2011

CloudCamp chez Sfeir

Hey, lecteur !
Qu'as tu de prévu à ton agenda ce 30 mai 2011 à partir de 18h30 ?
Si tu n'as rien, Sfeir te convie à un BarCamp spécial Cloud dans ses locaux à Suresnes. Si tu n'es pas coutumier des barcamps, sache que c'est une "non conférence ouverte". C'est à dire qu'un ensemble personne toutes intéressées par un même sujet s'isole dans un coin pour en discuter toutes ensemble.
Pour ce CloudCamp, nous aurons l'honneur d'avoir un invité de marque : Kohsuke Kawaguchi. Et oui, lui le papa de Hudon/Jenkins qui travaille actuellement chez Cloudbees sera là... Donc, une très bonne occasion, d'échanger sur le cloud.
Comme à tout bon évènement geek, il y aura bien sûr des pizzas et des boissons.
J'espère t'y voir.
Allez viens, les inscriptions, c'est par ici

dimanche 17 avril 2011

Ma journée à Mix It

Ce 5 avril 2011, s'est tenu le mix-it, conférence autour de java et de ses pratiques, organisée par le Lyon JUG et Kara. Celle çi était articulée de 5 thèmes : Techy, Agility, Tendy, Mixy, Gamy.
Soit 25 sessions au total. J'étais parmis les 250 personnes qui s'y sont rendu. Je vais vous faire une petite rétrospective de quelques sessions auxquelles j'ai assisté au cours de cette belle journée.

Nous étions quelques Parisiens, habitués du Paris JG, à s'être déplacé, dont certains en temps que Speaker.
Et c'est justement par Nicolas Martignole que commence la traditionnelle keynote, après une courte présentation de Objet Direct, principal sponsor de d'évènement.

Keynote

Nicolas commence par une question, « Qui est fier ce qu'il a réalisé ? ». Peu de monde, dans l'assistance lève la main. Cette question a pour but d'amener au constant suivant : le plus important, ce n'est pas le résultat mais le processus.
Il y a quelques années, on ne parlait pas de TDD, agilité, ni aucun terme tendance auquel nous sommes aujourd'hui habitués. A la place, on parlait d'architecture, d'UML, …
Nous n'avons plus la même façon de construire une application qu'autrefois (si j'ose dire) : nous livrons régulièrement par exemple. Nicolas aime assez la vision du craftmanship et nous expose 12 points du métier de développeur aujourd'hui.
1/ Pattern de l'iceberg : le client ne voit que ¼ de ce qui se passe, il est donc normal qu'il ne comprenne pas qu'une tache ait pris plus de temps que ce qu'il n'imaiginait.
2/ Comprendre ce qui va changer à la fin : Imaginons que vous naviger dans un bateau, vous préférez un point de rendez vous que vous recalculer chaque jour en fonction des contraintes ou un point de rendez vous cap 180° et on se revoit dans 10 jours ?
3/ Simplicité. Nous autre développeurs java, sommes de passionnés de technique et inventons régulièrement de nouveaux frameworks. Mais tant de complexité et elle nécessaire ?
4/ Itérer et avancer. Tout comme un musicien qui s'entraine, nous devons savoir jeter du code, le mouvement est important.
5/ Vision du jardinier, savoir pensez long terme.
6/ Mouvement permanent. Il ne faut pas attendre mais savoir bouger, en faisant de la veille par exemple.
7/ On ne dit pas de « Je fais de l'architecture » mais du « je fais du code propre ». C'est implicite dans la réalisation logicielle.
8/ Avoir le temps de se planter. C'est un avantage de l'agilité. Si au bout de 15 jours vous vous rendez compte ça passe. Mais si un cycle en V fait que vous vous en rendez compte, les conséquence auprès du client de sont pas les mêmes.
9/ Soyez sans pitié. Le code pourri ou en commentaire, il file tout droit à la poubelle.
10/ Le client est roi (mais on est pas non plus sa mère). Avec lui, on ne parle de qu'il connait : le métier, mais pas de techno. A l'inverse, ce n'est pas à lui, d'imaginer la solution technique. Lorsque vous prenez l'avion, donnez vous de conseils au pilote ?
11/ Gérer son manager. C'est en quelque sorte le ministre des affaires étrangère, c'est lui gère les relations entre l'équipe et le monde extérieur. S'il passe trop de temps à gérer l'équipe en elle même, c'est qu'il y a un soucis.
12/ Nous sommes des développeurs. Nous ne voulons pas être chef, amusez vous.

Spock, les tests du futur

Mathilde Lemée, habituée du Paris JUG mais aussi une des fondatrices des Duchess France, vient nous parler de Spock. Ce dernier, n'est pas qu'un personnage de la série Star Trek, c'est aussi framework de test venu de la galaxie Groovy.
Lorsque l'on écrit des tests, on a tendance à oublier leur partie critique : la maintenance.
Spock se veut de rendre les tests lisibles, ce qui facilite grandement de travail lorsque l'on refactore.
L'approche setup/expect/where ou given/when/then, facilitée par les labels, permet de tester une seule chose à la fois. La première syntaxe est adaptée à des cas de test simple type action/vérification du résultat. La seconde, elle est plus adaptée à des cas complexe où par exemple, je vais devoir faire appel à des éléments externes.
Il est important de différencier les mocks des stubs, ils n'ont pas les même rôles. Le stub est un bouchon stupide. Il sert simplement à tester l'état, mais n'a pas vocation à faire échouer le test. Au contraire, le mock peut faire échouer le test, car on teste son comportement.
En terme de code, la différence est assez simple : sois je vérifie si mon appel est bien effectué, soit je ne le fais pas.
Le problème posé par la sur utilisation des mocks, c'est que les tests casse au moindre refactor et consomme du temps pour les réparer.
Martin Fowler apporte plus de précisions dans son article sur le sujet.
Ce qu'apporte principal Spock aux tests, c'est une syntaxe plus souple.

def "account activation mail sent to user"(){
setup:
UserService userService = new UserService()
def emailService = Mock(EmailService)
emailService.sendMail(_,_,_,_) >> true
userService.emailService = emailService
User user = new User(email : "testUser@gmail")
when:
boolean success = userService.sendActivationMail(user)
then:
1*.emailService.sendMail("testUser@gmail","admin@admin.com",
"Your account is activated", "Congratulation now you can login") success == true }

Ce que l'on note :
  • Nom de méthode expressif et lisible
  • Configuration simple du résultat de la méthode du mock grace à >>
  • Configuration simple de la vérification de l'appel du mock 1* …
  • Pas d'assert sur le résultat, il est implicite

De façon globale, la syntaxe est assouplie grace aux bloc given/when/then qui permettent d'éviter l'utilisation de mots clés, ce qui au final donne une lecture plus naturelle des instructions.

Cette lisibilité est accru dans le cadre de tests avec jeu de données :

def "String param should correspond to numeric spockInfoDay"() {
setup:
def spockResource = new SpockResource(new CalendarDaoStatic())
expect:
spockResource.findCalendarByDay(day).day == dayNumeric
where:
day | dayNumeric
"1" | 1
"2" | 2
"3" | 3
}

N'est ce pas plus plaisant à lire ?

Intelligence collective avec Apache Mahout

Je suis allé sur ce sujet que je ne connais absolu pas, par curiosité. C'est Michael Figuière qui nous a présenté à ce framework.
L'intelligence collective est supérieure à l'intelligence du plus intelligent. Wikipedia est un exemple, il contient beaucoup plus de connaissance que quiconque.
Aujourd'hui, internet permet d'agréger tout un tas de données. Page Rank agrège par exemple l'intelligence collective des sites web. Ainsi, par de nombreux liens, le site officiel de mix-it est la première réponse à la recherche « mit it ».
Le machine learning est un concept clé de Apache Mahout. Il s'agit d'un sous ensemble de l'intelligence artificielle. Les applications en sont par exemple :
  • Recommandation à d'un livre à un client en fonction de ce qu'il a déjà acheté ou de ce que les autres ont achetés en même temps.
  • Classification automatique de mails en fonction de qui a déjà été classé.
  • Conseil de fonctionnalité : si un utilisateur ne s'en sert pas, peut être qu'il ne la connait pas.
  • Adapter filtrage en fonctionnalité du profil : quand je cherche un livre sur java, faut il favoriser l'informatique ou les livres sur l'ile ?
  • Filtrage du spam
  • Agreger un flux actualité en fonction des tendances.

Pour nous, dans le domaine de l'informatique de gestion, ces concepts ne nous sont pas familliés. C'est justement là qu'intervient Apache Mahout en fournissant un implémentation java des algorithmes dernières ces concepts, facilitant ainsi leur intégration dans nos applications. Un bonne partie de cette implémentation est faite en Map/Reduce. Le framework est encore jeune mais connait une croissance rapide.


Pimp my app

Pour finir en épanadiplose, je finis ma journée par la présentation de Nicolas Martignole sur Play.
Quelques éléments pour moderniser une dans un navigateur web tout en s'amusant :
  • Html5/css3/jquery
  • Play
  • Huile de coude

Play! est développé à la base par Guillaume Bord, une personne du monde du web et de Ruby, et donc qui pas connu les joies des EJB 2. Devant la complexité du développement web en java, il a voulu réconcilier les 2 mondes en récréant ce qu'il connaissait avec Rails.
Tout d'abord, Play! n'utilise pas l'api servlet, est sans état sur le serveur. Choses banale dans d'autres technos utilisés pour faire du web. C'est justement sur Rails, Django et Grails que vient sont inspiration.
Avec Play! devient facile de développer rapidement une idée, ainsi moins de scrupules à jeter du code si l'on est pas satisfait. Un des aspect qui permette sa simplicité, c'est son absence de session coté serveur et qui va en adéquation avec les principes de REST.
C'est un framework fullstack, je fais tous avec lui : écriture de code, compilation, test et déploiement. Tous ça au sein de son environnement. Pour éviter d'être prisonnier de son serveur, on peut même packager en war et déployer sur un serveur d'application, bien que l'esprit de soit un peu perdu dans ce cas.
Nicolas nous explique que la question de se poser l'utilisation chez le client et la même que celle qui se posait il a 5 ans, à savoir si on peut utiliser Play.
Et bientôt, avec la version 1.2 on pourra piocher des dépendances avec modules Ivy.
Pour le moment, un ses points faibles c'est l'industrialisation des développements.

Un projet Play à la même structure qu'un projet Ruby :
  • src : les sources aussi bien java que html
  • test
  • conf : la configuration telle que le routage ou les propriétés

Nous avons le droit à une live démo :
  • La classe de base qui est un point d'entrée du controller.
  • La page htlml, est du script groovy
  • Oh mais on pas recompilé et ça marche.
  • En mode dev, Play surveille les fichiers et recompile quand il faut, on laisse ainsi tourner le serveur tout en codant
  • La trace d'erreur est lisible, ça fait gagner beaucoup de temps.
  • Utilisation d'un cookie pour gérer l'état conversationnel avec des cookies.
  • Pas de session sur le serveur

Les 2 derniers points nous pousse à avoir une architecture différente.

Niveau graphique, un inconvéniant, c'est qu'il n'y a rien, il faut retourner aux bases : grande utilisation du css et js.
Cela dit, sur ces 2 domaines en cas de problèmes ont peut toujours trouver de l'aide, venant même d'autre communautés comme php et rails.
Pas un peu de code css3, Nicolas nous montre comment embellir sa partie web en ayant par exemple un bouton full-css, de l'ombrage, ….



Cette conférence a été une belle réussite. Aussi, j'ai ouïe dire qu'elle avait été organisées en très peu de temps. Je profite donc de ce billet pour féliciter donc les responsables de celle ci et espère une prochaine édition l'année prochaine. Il est plaisant de voir que les communautés dans toutes la France se bougent pour nous monter de beaux événements à bas coût. Le prochain rendez vous sera le Breizh camp.