18 novembre 2009

Ctrl+Alt+Suppr

Cet après midi, une session bien mystérieuse tout simplement nommée “James Gosling” – le papa de Java y présente store.java.com, une place de marché sur le modèle du apple AppStore ou de l’Android Market, permettant aux indépendants de proposer leur développements maison aux millions de PC et mobiles équipés d’un runtime Java.

Le sujet étant assez peu intéressant (pour ce qui me concerne) je me rabat sur la session de Brian Goetz sur l’évolution de l’informatique vers le parallélisme et son influence sur notre façon de programmer… jusqu’à ce que le son plante !

Les sessions étant enregistrées pour Parleys.com, les speackers sont priés de faire une pause… mais qui donc s’est pris les pieds dans la prise ? Les Twits affichés dans le hall n’attendent pas longtemps:

Comme quoi c’est une arme à double tranchant, ou peut être un moyen de canaliser les réactions du public : 2> /dev/null :)

Quoi qu’il en soit cela laisse de la place pour discuter avec son voisinage et apprendre quelque chose que j’ai raté ce matin lors de la session “JDK7, an update” pendant laquelle a été annoncée l’inclusion des Fermetures (Closures) dans Java 7.

Ce sujet, qui pourrait paraître anecdotique, déchaine les passions depuis pas mal de temps, ces structures étant supportées par de nombreux langages, … sauf Java. Il y a an, au même endroit, l’annonce inverse avait été faite, il faut croire que les groupes de pression ont fait leur œuvre. Reste à confirmer, et à attendre la version finale de Java7 ! 

Keynote Day 3, La crise …

La journée de conférence commence par une réunion plénière, l’occasion pour Stephan de présenter la nouvelle édition de Parleys, que vous connaissez déjà en beta si vous utiliser les channel BreizhJug. Comme toujours, cette appli fait son effet. La version 3 introduit un modèle économique pour ce site qui consommes quelques To de bande passante, avec un abonnement pour visualiser les speach Devoxx dès les premiers jours et des espaces privés pour les entreprises qui veulent diffuser (ou utiliser en interne) ce support. Personnellement je la recommande à tout ceux qui veulent faire de la com’ ou de la formation interne ou publique.

Suit la Keynote “sponsor”, qui se retrouve scindée en deux : Oracle puis SUN

Le représentant Oracle n’est autre que le directeur technique (excusez moi d’avoir oublié le titre exact, un truc comme “Chief Officier Executive Truc”). Il annonce d’office la couleur : pas d’info sur la fusion, devoir de réserve.

On est fixé. Après quelques blagues à la limite du private joke, on part donc sur un point de vue d’Oracle sur la plateforme Java : rien de très surprenant. Java c’est chouette, ça évolue, y’a plein de monde et encore du chemin à parcourir… Oracle présente aussi sa vision du futur de Java, à savoir OSGi, via une démo d’une appli web déployée sur un micro-noyau OSGi Weblogic. Certes le temps était compté, mais la démo est minable et n’apprend absolument rien, sans compter qu’elle plante à moitié.

La démo suivante montre l’assemblage et le déploiement de cette appli sur une VM Jrockit (une VM qui exécute directement le JDK, sans O/S). On retrouve les bons outils Oracle “clic souris” que les amateurs de BPEL aiment tant.

Bref, on sort de là avec pas plus d’info qu’au début.

Suit la Keynote de SUN, animée par les représentants de la JSR JEE6 et de GlassFish. Cette fois il s’agit plus d’un résumé des deux jours d’université largement marqués par JEE6, mais le ton est net : “vous vous rappelez de ma session l’an dernier ou j’annonçais JEE6 ? et bien cette fois on y es presque”. Pas de langue de bois, c’est bien à des techos qu’on à affaire et ça tombe bien, c’est ce qu’attend le public de Devoxx (moi en tout cas) !

D’autres sessions consacrées à JEE6 et GlassFish sont prévues dans la journée pour se faire une idée plus précise.

Ce keynote ne sera donc pas l’occasion d’annonces fracassantes. Devoxx 09 sera marqué par la crise : moins de sponsors, moins de participants, beaucoup ne viennent que deux ou trois jours. Le statut incertain de la fusion SUN-Oracle ajoute à l’ambiance “on attend que ça passe”.

Un point positif tout de même : mon bouquin devrait être présent sur le stand Pearson – en un seul exemplaire de présentation ! La crise je vous dis…

JEE6, mais qui a commandé ça ?

La session BOF (Birds Of a Feather = réunion communautaire) sur JEE6 réunissait de nombreux experts ou spec leads des différents éléments qui composent JEE6. Le sujet était volontairement provocateur : pourquoi devrais t-on s’intéresser à JEE6 ?

Il faut dire que JEE traine de sacré casseroles, et s’est fait balayer pendant un temps par le succès de Spring. JEE6 semble reprendre les rênes en main en mettant poliment toutes les vieilleries à la poubelle (pardon, en “prune”, si vous y tenez vous pouvez les conserver encore un petit peu) et en proposant un modèle plus modulaire, quasiment à la demande.

La communauté reste assez sceptique, non pas sur le contenu mais sur le fonctionnement du JCP : pourquoi y a t-il parfois deux specs pour une même JSR, qu’est ce qui différencies “Managed Bean” de CDI (aussi connu comme “Web Beans”), pourquoi n’y a t-il pas de spec JEE pour gérer le clustering ?

La réponse, en demi teinte, c’est “ben les gars, c’est pas si simple de mettre tout le monde d’accord”. On est donc content de voir que les choses avancent, même si tout n’est pas parfait et que certaines choses semblent redondantes ou amenées à évoluer.

Reste un constat intéressant : Caucho développe from scratch ce qui sera le tout premier serveur JEE6 “Web Profile” produit par un outsider. Avec le mastodonte JEE on avait pas envisagé un nouveau venu dans la cour des grands depuis belle lurette. JEE6 rend enfin les choses possibles.

Autre bonne nouvelle : la spec Web Profile vit sa propre vie, et pourra donc évoluer rapidement sans attendre JEE7. On peut donc parier qu’il va y avoir de la demande de ce côté.

En conclusion, une session BOF intéressante avec une bonne participation du public et des speackers sans complexe ni langue de bois.

17 novembre 2009

SOA (prononcer lentement)

Cette après midi, session bien longue sur la SOA. Le speacker égraine très progressivement les problématiques et ses recommandations, à un rythme qui donne envie de le secouer pour faire avancer le schmilblick – c’est assez pénible.

Même si les enseignements ne sont pas inutiles, la lenteur de la session la rend éprouvante et on fini le portable sur les genoux à faire autre chose…

Je me rattrape sur la session Tools in action de JetBrains qui vient présenter TeamCity. Cette fois ça ne dure que 30 minutes et on aimerait en voir un peu plus. Une présentation animée de nombreuses démo (c’est le principe du “in action”) avec les petits loupés qui vont avec, mais qui présente très bien l’outil et son intérêt. A tester d’urgence (c’est gratuit pour les équipes de taille “raisonnable”)

On termine sur un BOF “JEE6, à quoi ça sert ce truc” pour lequel Antonio met le paquet à coup de twitter et de blog pour faire venir du monde. Je vais donc mettre mon T-shirt “I Love Spring” tout juste gagné sur le stand SpringSource histoire de le mettre en confiance ;)

Oracle et Sun …

Discussion au coin du stand Oracle :

La grande inconnue de l’année est bien sur le rachat de SUN, absent de Devoxx alors qu’Oracle reste “partner premier”. Le stand croule donc sous les demandes d’infos officielles ou non, avis et autres rumeurs.

On en saura peut être plus demain avec la KeyNote qui y est consacrée, mais il ne faut pas attendre de révélation : bloquée par le conseil européen, la fusion n’avance pas et donc la stratégie d’Oracle sur le sujet non plus. Déjà obligé à marier Eclipse et JDeveloper (sur lequel Oracle bases tous ses outils SOA), quelle place donner à NetBeans ? Quel avenir pour MySQL, au coeur de la polémique – deviendra t-il indépendant pour rassurer le conseil européen ?

Qu’en est-il du Java Community Process, toujours piloté par SUN ? Nombreux sont ceux qui réclamaient son indépendance, et il se retrouve embarqué dans les rouages de la fusion. Oracle va t-il reprendre le relais ?

JRockit va t-il fusionner avec le JDK SUN ? Le développement de Java7 avance rapidement alors que la spécification JSR n’est pas finalisée. Oracle va t-il reverser du code de JRockit dans OpenJDK ? Si on peut encore imaginer plusieurs IDE ou serveurs d’application “spécialisé”, il est peu probable qu’Oracle maintienne le développement de deux JDK.

J’ai bien peur qu’on ressorte du Keynote avec encore plus de questions en suspens… 

JEE6, il revient (et il n’est pas content)

Non ce n’est pas d’un remake du retour de la momie, mais de la session University animée par Antonio Goncalves et Alexis Moussine-Pouchkine qu’il s’agit.

Nous avons tous crachés dans la soupe JEE après s’être englués dans les EJB 1 et 2. Le but de cette session est donc de nous réconcilier avec ce modèle, à grand renfort d’humour et de démos.

JEE6 fait déjà le constat de l’échec de la génération précédente dont plus personne ne veut. On met donc toutes ces vieilles spec en @Deprecated (“pruned”) et on fait quelque chose de plus moderne, léger et flexible. Ensuite, JEE6 réutilise le modèle de Profiles, déjà utilisé par J2ME. Le profil Web typiquement permet à un serveur Resin d’être certifiable JEE6 sans pour autant embarquer toutes les API de la plateforme.

Les démos enchaînent la mise en oeuvre des concepts JEE6, fortement basés sur des annotations. On retrouve de nombreux éléments bien connus sous Spring, mais cette fois standardisés dans la plateforme JEE.

D’où une question, que je vais essayer d’approfondir demain sur le stand SpringSource (les cadors ne sont pas encore arrivés) : Spring pourrait-il supporter les annotations EJB 3.1 (Lite), ou développer un conteneur EJB basé sur Spring, ce qui permettrait pour le développeur de passer d’un conteneur à l’autre sans changer de code ?

Dans quelques années, pourra t-on déployer des composants / une application conçue pour JEE6 sur un conteneur Spring (TC server ou je ne sais quoi qu’ils nous auront pondu d’ici là) sans modification de code ? A priori ça ne semble pas bien compliqué vu que toutes les fonctionnalités de ManagedBean, d’intercepteur et autres injection de dépendances sont déjà largement supportées par Spring. Un petit namespace ejb: ?

Eh les gars de Spring, ça ne vous tente pas de démontrer la “supériorité” de Spring en nous sortant un conteneur EJB 3.1 Lite de 15 lignes de code ;)

JEE6, il revient (et il n’est pas content)

Non ce n’est pas d’un remake du retour de la momie, mais de la session University animée par Antonio Goncalves et Alexis Moussine-Pouchkine qu’il s’agit.

Nous avons tous crachés dans la soupe JEE après s’être englués dans les EJB 1 et 2. Le but de cette session est donc de nous réconcilier avec ce modèle, à grand renfort d’humour et de démos.

JEE6 fait déjà le constat de l’échec de la génération précédente dont plus personne ne veut. On met donc toutes ces vieilles spec en @Deprecated (“pruned”) et on fait quelque chose de plus moderne, léger et flexible. Ensuite, JEE6 réutilise le modèle de Profiles, déjà utilisé par J2ME. Le profil Web typiquement permet à un serveur Resin d’être certifiable JEE6 sans pour autant embarquer toutes les API de la plateforme.

Les démos enchaînent la mise en oeuvre des concepts JEE6, fortement basés sur des annotations. On retrouve de nombreux éléments bien connus sous Spring, mais cette fois standardisés dans la plateforme JEE.

D’où une question, que je vais essayer d’approfondir demain sur le stand SpringSource (les cadors ne sont pas encore arrivés) : Spring pourrait-il supporter les annotations EJB 3.1 (Lite), ou développer un conteneur EJB basé sur Spring, ce qui permettrait pour le développeur de passer d’un conteneur à l’autre sans changer de code ?

Dans quelques années, pourra t-on déployer des composants / une application conçue pour JEE6 sur un conteneur Spring (TC server ou je ne sais quoi qu’ils nous auront pondu d’ici là) sans modification de code ? A priori ça ne semble pas bien compliqué vu que toutes les fonctionnalités de ManagedBean, d’intercepteur et autres injection de dépendances sont déjà largement supportées par Spring. Un petit namespace ejb: ?

Eh les gars de Spring, ça ne vous tente pas de démontrer la “supériorité” de Spring en nous sortant un conteneur EJB 3.1 Lite de 15 lignes de code ;)

la poisse …

J’ai fait une réservation au Holyday Inn Express juste à côté de Devoxx et hier soir en arrivant : “désolé monsieur … problème de réservation” bla bla bla

“OverBooking” qu’il a dit au téléphone le monsieur en me recherchant une chambre dans les hotels alentours. Je me retrouve donc à l’autre bout d’Anvers (et pour nettement plus cher).

Pour continuer sur cette lancée, je perd mon badge d’accès aux conférence dans le taxi. L’équipe Devoxx est heureusement très sympa et m’en a fait un nouveau (ils ne sont pas là pour faire des tunes, toute cette organisation est bénévole autour du BEJug).calimero1

Moralité : je porte la poisse, ne partez jamais en voyage avec moi.

16 novembre 2009

Devoxx, day1

L’université JSF s’est montrée assez décevante. Les organisateur de Devoxx se sont amusés à développer une application Flex qui diffuse dans le hall sur écran géant les twits marqués #devoxx, avec un effet d’animation bien sympa (un truc en Flex quoi). On a pu y lire de nombreuses critiques qui me confortent dans ma perception de la session… par facile de contenter tout le monde ;)

Pendant la pause, je rencontre au hasard d’un des nombreux tableaux blancs d’expression libre une connaissance du web : Ceki Gülcü à qui on doit log4j et slf4j. J’en apprend ainsi un peu plus sur l’échappée de slf4j hors de la fondation apache et la création de logback. La communauté autour de log4j semble avoir atteint une taille critique qui la paralyse dans sa possibilité de prendre des décisions fortes, comme en témoigne le gel de log4j 1.3. La seule critique que j’ai sur slf4j, et que Ceki a bien noté, c’est l’absence de varargs pour contruire des logs avec de nombreux paramètres. En dehors de ce point de détail c’est clairement pour moi l’avenir du log – Ceki présente une session sur le sujet Mardi matin pour ceux que ça intéresse…

slf4j-logo

Je lui fait une publicité éhontée pour GWT qu’il va expérimenter dans les mois à venir, pendant qu’il me vante les mérites sans fin de Wicket que je vais découvrir dans une semaine. Echange d’expérience, de bonnes pratiques et de points de vues très enrichissant.

J’enchaine avec un Tools in Action sur Hades, un outil qui interprète les noms de méthodes des DAO pour économiser l’écriture du code barbant d’accès à la base. Ca ne vous rappelle rien ? J’ai échangé quelques mots avec le speacker/createur de cet outil et je pense lui piquer quelques idées pendant qu’il ira faire un tour su mon site pour comparer nos idées. L’open-source a du bon !

Le WiFi, complètement pris d’assaut par plusieurs centaines de voraces, est à genoux. Le temps de piquer un câble réseau sur une table sponsor -- merci à SpringSource de sponsoriser sans le savoir ce blog ;) -- pour publier ce billet et je fille récupérer mon bagage avant que le vestiaire ne ferme…

Demain on attaque les choses sérieuses : la chasse au goodies dans les stands :D !

One day in Antverppen

Me voici donc à Anvers, Belgique pour une semaine de Devoxx.

 logo

Cette première journée sera assez “light” vu que j’arrive à midi et qu’il ne reste donc qu’une "university” cette après midi. Je choisis le sujet JSF 2 and beyong, framework que je connais peu et n’ai jamais pratiqué, j’apprend donc assez peu de choses vu que je ne ressent pas les enjeux. J’en retiens juste que c’était pas fantastique au début mais que maintenant, avec toutes les super nouveautés c’est le top. Pour ma part mon projet à venir sera basé sur Wicket … sujet pour lequel une université et une conférence étaient prévue mais sont déprogrammées, dommage - je vais donc devoir lire la doc :(

La journée est surtout l’occasion de retrouver quelques têtes connues, bien sur le ParisJUG qui a fait le déplacement en troupeau, mais aussi quelques autres Juggers français. Le gros des troupes arrivera d’ici Jeudi pour les journées de conférences.

L’occasion aussi de réchauffer mon anglais pour être au top les jours à venir :)

Je fais un détour sur le stand Pearson pour voir que … mon livre n’est pas référencé, ni même connu. Pour une sortie prévue le 20 synchronisé exprès pour Devoxx ça me contrarie un peu, j’espère que ce sera réglé d’ici jeudi, la plus grosse journée de Devoxx, sinon je vais devoir rembourser l’avance sur droits d’auteur que j’ai reçue ;)

Enfin, et comme toujours sur ce genre de conférence où des centaines de portables se côtoient, le grand jeu est de trouver un coin ou le WiFi n’est pas complètement saturé pour pouvoir diffuser quelques notes. Je vais donc probablement suivre l’exemple du touilleur et publier plutôt des synthèse que mes notes au fil de l’eau.

13 novembre 2009

En route pour Devoxx

Devoxx commence la semaine prochaine, et une fois de plus j'ai réussi à faire passer les frais de déplacement dans mon quota de formation ;)

Je vais passer par ce blog pour vous en faire profiter, et si vous êtes sur place n'hésitez pas à me passer un petit bonjour, car je vais profiter de l'occasion pour faire la promo de mon bouquin :
Apache Maven, co-écrit avec Arnaud Héritier, et qui sera disponible dans toutes les bonnes crèmeries le 20 novembre.



12 novembre 2009

Maven multi-threadé ?

On a vu de nombreux billets du blog Sonatype montrant les premiers effets de la lourde refonte du coeur de Maven en "Maven 3", par exemple de la possibilité d'utiliser d'autres format que le XML pour définir le POM.

Sur ce billet on peut découvrir comment, devenu plus accessible, le code encourage à nouveau des développeurs talentueux à soulever le capot et à se salir les mains. Ce premier exemple est plus un proof of concept, et vise à apporter à Maven l'exécution en parallèle du build (pensez aux projets multi-modules dont certaines branches sont indépendantes).

Au delà du gain de performance possible et de la date d'inclusion dans une version fonctionnelle de Maven, c'est bien une preuve pratique qu'on peut enfin entrer dans le code de Maven, le comprendre et l'enrichir de manière significative - un peu plus que du bug fix.

Peut m'importe ici la fonctionnalité proposée, même si elle semble intéressante, ce que je remarque (et que souligne aussi le blog Sonatype) c'est que la contribution vient d'une personne extérieure à Sonatype, signe de la ré-ouverture de Maven-core aux développeurs de la communauté. Vous savez que j'ai été très critique sur la gestion de Maven3, développé sans par Sonatype, sans visibilité pour ceux qui ne suivent pas les listes et IRC à plein temps, et laissant la communauté en attente d'un résultat palpable. La roadmap de Maven3 a très longtemps été un flou total.

Si j'y suis allé sans doute un peu fort -- je doute que Jason accepte à présent de devenir mon amis sur FaceBook :) -- cela aura au moins participé à pousser Sonatype vers plus de transparence. Entre autre, les releases alpha de Maven3 se multiplient et les signes de redémarrage d'un développement pluripartite apparaissent. Avec ce nouvel élan, Maven 3 va donc être une base pour cristalliser de nouvelle idées, bien au delà du simple nettoyage de code - et les idées ne manquent pas !


11 novembre 2009

Bientôt riche !

Grace à vous, fidèles lecteurs, et aux annonces Google adSense, je peux vous annoncer que ce Blog m'aura rapporté en deux ans d'existence 15,53 €

Je vais donc continuer un bosser pendant quelques temps, mais sait-on, peut être que je pourrais un jour passer blogueur à plein temps et me la couler douce pendant que vous continuer à vous arracher les cheveux - moi de toute façon il ne m'en reste plus assez pour tenir longtemps :)

visual management, SCRUM et tout ça

Je sors juste de formation SCRUM Master et (ceux qui suivent ce blog le savent déjà) j'expérimente par ailleurs le management visuel.

Selon le principe du "eat your own dog food", et aussi du "mieux vaut tester d'abord sur un cas simple avant de trop se la jouer" je fais un petit essai @Home :

Je suis en train de faire la déco complète de ma chambre, donc :
  • Delphine joue le rôle du product owner. Elle donne les objectifs, comment les valider, et leur "valeur" relative - exercice un peu étrange auquel elle s'est pliée en me prenant pour un dou-dingue qui sort de sa formation tout frétillant d'excitation.
  • Je joue le rôle de l'équipe, et aussi du ScrumMaster - c'est donc totalement biaisé par rapport à la méthode théorique :)
  • Il n'y a pas vraiment de Sprint, plutôt des heures libres pour bosser par ci par là dans la semaine. Disons qu'on pratique plutôt le ScrumBan pour ceux qui ont lu cet essai.
Au niveau organisation, ça donne ça :

  • plein de choses à faire
  • une tâche entamée qui pose déjà problème et dépasse largement l'estimation en "heures idéales"
  • du mal à intégrer rapidement des tâches à forte valeur métier car elles dépendent d'autres tâches de faible valeur

  • L'objectif est donc atteint :
    • vision claire et immédiate de l'avancement (ou du non avancement dans mon cas) - ça tombe bien, c'est le but
    • vision claire des tâches à prioriser, et de la difficulté de les intégrer
    • la limitation du nombre de tâches en parallèle imposée par le kanban n'empêchent de me disperser (c'est mon gros défaut) - c'est un garde fou intéressant pour ne pas introduire de gaspillage de temps et d'énergie.
    A suivre pour savoir si l'aménagement de cette chambre terminera dans des délais raisonnables et satisfera le Product Owner, ce qui dans mon cas est un objectif non négociable ;)

    04 novembre 2009

    Travailler plus pour ... des prunes ?

    Alors que le spectre des heures sup' du samedi plane sur mon beau projet, et que certains dépassent déjà très largement les 35heures hebdomadaires, je tombe sur ce billet très pertinent. L'idée clé est de remettre en question notre perception du développement informatique, et tout le vocabulaire qu'on lui a associé.

    Il y a encore peu de temps on empruntait le langage du bâtiment pour en parler (je suis moi même "architecte", ce qui me fait un peu mal au bide quand je pense à l'expérience de construction de ma maison). Cela correspondait à une époque où il fallait faire accepter au client l'élaboration de plans et de décisions en amont

    On a ensuite inventé la software factory et l'industrialisation des développement, ce qui - dans le vocabulaire - fait de nous des ouvriers spécialisés du développement. Ce n'est pas juste une question de vocabulaire mais bien un état d'esprit : productivité, maîtrise des coûts et des délais, voila les nouvelles valeurs du développement. Il ne s'agit même plus de qualité logicielle, mais bien de production à coûts réduit.

    Pourtant nous savons tous que notre travail ne ressemble pas du tout à une usine de montage à la chaîne, et qu'au contraire nous devons à tout moment improviser des solutions aussi "pas trop mauvaise" que possible. Le développeur lui même, selon cette logique industrielle, devrait devenir un simple pantin appliquant une méthode bien rodée via des outils bien entretenus (tout ceux qui bossent sous Eclipse savent que c'est loin d'être le cas).

    Alors pour pousser ce rapprochement linguistique entre la Taylorisation et l'informatique, Est-ce qu'on vend à nos clients des projet de folie en deux mois, à condition que ce soit de couleur noire ? Bien sur que non : vive l'agilité, la compétence, la créativité, les équipes réactives et motivées. Tout d'un coup on revient dans le monde de l'artisanat d'art... cherchez l'erreur.

    De mon point de vue, le développement informatique est dans la situation d'un bijoutier qui n'aurait pas le renom de Rolex et subirait la concurrence de Swatch. Comment faire de bons produits à un prix attractif ?
    • Produire en chine et très probablement baisser en qualité (ah, l'offshore ...) ?
    • Trouver des axes d'amélioration internes (ce qui voudrait dire investir !) ?
    • Travailler sur la relation client et l'image de marque - rien de bien nouveau et que se heurte à la politique actuel du "passage obligé par le service achat"
    • Jouer la carte de la compétence, un peu comme on visite un atelier pour découvrir le talent d'un artisan ? Encore faut il avoir du talent à montrer ;)
    Je n'ai pas de solution miracle à proposer - sinon je ne serais pas là :) - par contre je plussoie ce billet d'Octo dans le sens ou de mauvaise images apportent une vision biaisée de notre travail et
    donc de mauvaises solutions.

    24 octobre 2009

    Une nouvelle méthode agile ?

    Pour faire face à une liste de tâches anarchique, j’expérimente une méthode agile de mon cru : SCUM.

    Issu à l’origine d’une faute de frappe, c’est devenu l’acronyme de SCrum for Unique Member (Scrum appliqué à sois tout seul).

    Les mêlées quotidiennes sont faciles à organiser, et en plus c’est rapide. Le simple fait de se demander ce qu’on a fait la veille avant d’attaquer est tout de même pas totalement inutile quelque fois !

    Un sprint dure de 2 jours à une semaine. Tout seul c’est tenable :)

    Jusqu’ici c’est plus du vent qu’autre chose, alors voici le BACKLOG du sprint, et ses célèbres post-it sur le tableau Veleda. L’intérêt énorme de cet outil c’est :

    • qu’il n’a pas toutes les limitations de nos trackers en tout genre avec leur cycle de gestion pourrie, leurs champs obligatoires et autres complications inutiles.
    • qu’il est dynamique – par définition, un post-it, ça se déplace - et naturellement synthétique

    L’air de rien ça permet rapidement de voir où on en est et ce qu’il reste à faire – pour certains ça ferait sans doute peur d’ailleurs, mais ce serait pourtant un bon indicateur !

    J’organise donc la “SCUM’Conf 2010”, il reste encore des places pour ceux que ça intéresse :p

    15 octobre 2009

    Une excellente Idea

    Eclipse est omniprésent, et tout le monde s’accorde pour dire que c’est devenu une usine à gaz ingérable. Je dois moi-même faire face aux excès d’humeur de mes petits camarades qui pestent sur un Eclipse “préparé” par mes soins et qui malgré ça plante allègrement ou rame tout ce qu’il peut.

    La concurrence, c’est NetBeans – qui a vraiment du mal à décoller même si on m’en a dit beaucoup de bien – et Idea, qui a une excellente réputation, mais malheureusement aussi un prix

    logo_bw[1]

    Ca, c’était la situation hier. Jetbrains vient en effet de passer son IDE en opensource

    idea9-community_header[1]

    Toutes les fonctionnalités de la version payante ne sont bien sur pas au rendez-vous, mais la liste est déjà bien assez large pour contenter les utilisateurs d’Eclipse lassés du “building workspace”

    Reste qu’il va falloir franchir le pas de dés-apprendre toute ces (mauvaises ?) habitudes qu’on a si chèrement acquises sous Eclipse, identifier les bons plugins et tout et tout, mais je suis convaincu que ce billet d’entrée sera vite amorti, à commencer par tout ceux qui galèrent avec l’intégration vraiment pourave de Maven dans Eclipse (on attend toujours ce fameux m2e 0.9.9) ...

    Pour ma part, je tente l’expérience dès demain :)

    Pour plus d’infos, ça se passe ici : http://www.jetbrains.com/idea/nextversion/free_java_ide.html

    10 octobre 2009

    Encoding Hell

    ucs-encoding[1]Je viens de perdre une nouvelle journée de boulot sur des %!@$ problèmes d’encodage. Encore un N-ième fichier XML dont l’entête déclare fièrement un encoding=UTF-8, et qui se retrouve charcuté à la sauce CP-1252 (variante MS de l’ISO-8859-1).

    Dire que depuis toutes ces années à inventer des formats interopérables et tout et tout on en est encore là ça fait pitié. J’en suis à me demander s’il n’existerait pas un petit plugin Eclipse bien malin pour convertir à la volée tous nos accents en entités xml ou en échappement Unicode – il y a par exemple le plugin propertiesEditor qui fait ça très bien … pour les fichiers properties.

    C’est peut être l’occasion de devenir totalement bilingue et de tout rédiger en anglais, histoire de ne plus sortir du bon vieux ASCII 7 bits qui est finalement le seul moyen de ne pas se prendre la tête.

    Le build Maven est un peu (!) plus stable grâce à l’option project.build.sourceEncoding mais ce n’est pas encore la panacée : il semble que le générateur de code de CXF (wsdl2java) produise du code source dans l’encodage “local”… pas gagné cette affaire.

    08 octobre 2009

    Lecture du soir...


    Mon éditrice m'a fait parvenir un petit bouquin bien sympa : un petit guide du développeur JavaScript.

    JavaScript est un langage des plus étrange : rendu indispensable par sa présence sur tous les navigateurs web, il est particulièrement obscur pour des développeurs traditionnels et comporte aussi bien des constructions très élégantes et des pièges à c.. dans lesquels on s'embourbe avec bonheur.

    Comme beaucoup, j'ai moi aussi essayé de faire du développement JS avant de tomber dans des complications sans fin, malgré l'aide de frameworks en tout genre - c'est, entre autre, ce qui m'a fait aimer GWT ;)

    Dans ce petit guide, Douglas CrockFord (YahooUI) prend d'office le parti d'écarter tout ce qui fait de JavaScript un langage tout pourri - sans se voiler la face - et ne présente donc que ce qui fait de JavaScript un langage prodigieux. C'est une des raison de la taille réduite du livre : hors sujet le DOM du navigateur, Ajax et ses implémentations merdiques d'un navigateur à l'autre. Ici on se concentre sur le coeur du langage, son fonctionnement et sur les bonnes façons de faire.

    Pour un développeur débutant c'est clairement le livre idéal : comme on y apprend seulement ce qui marche bien, on est au moins sûr de ne pas prendre un mauvais pli. Pour les personnes plus expérimentées, la piqûre de rappel est salvatrice - j'ai enfin compris pourquoi this change si souvent de nature dans une fonction JS :)

    Le livre se termine par plusieurs annexes qui dénoncent les aberrations du langage et ses mauvais éléments. Une bonne façon, une fois les bonnes pratiques acquises, de savoir là où il ne faut pas mettre les pieds et donc savoir les repérer.

    Un excellent ouvrage, concis mais dense. Il donne du sens à ce langage méconnu et si loin de nos bon vieux langages objet fortement typés et basés sur des classes. Un indispensable pour toute personne qui compte se lancer dans un développement JavaScript, probablement plus indispensable que les nombreuses "bibles" du JavaScript en 400 pages qui sont bien plus délicates à exploiter. Bien sûr, pour être applicable en développement il faudra lui adjoindre une bonne référence sur l'API DOM et ses variations entre navigateurs.

    Seul regret, je n'ai pas retrouvé d'information sur les problèmes de fuites mémoire, si caractéristiques des Closures JavaScript - peut être qu'une seconde lecture plus approfondie s'impose ;)


    Disclaimer : bien que lié par contrat à Pearson dans un autre contexte, cette revue ne m'a pas été dictée et je parle donc en toute franchise :D



    05 octobre 2009

    HTML 5 - il va falloir réapprendre à coder :)

    Au moins ceux d'entre vous qui suivent les actualités de Ajaxian.com ont entendu parler des progrèés sur HTML5. En particulier, Chrome 3 - webkit en général - le supporte

    NB : je dis "le supporte", bien que ce soit partiel vu que HTML5 n'est pas une norme définitif mais un travail collectif.

    Jusqu'ici je restais assez dubitatif, jusqu'à ce que je tombe sur cette démo : http://www.raymondhill.net/puzzle-rhill/jigsawpuzzle-rhill.php

    Manipulation d'images à la souris, rotations et autres transformations, des choses dans l'absolu assez simples mais qu'on a pas l'habitude de voir en dehors d'un conteneur Flash. HTML5 promet donc d'ouvrir les portes aux pages riches et animées, sans passer ni par des magouilles de développement, ni par un runtime qui rend le client "léger" semi-lourd.

    Faites donc joujou avec la démo, puis faites l'exercice : si un client me demandais un truc de ce genre, qu'est ce que j'aurais à lui proposer comme solution ?