26 février 2013

Codenvy, l'IDE dans le Cloud

Vos serveurs sont dans le Cloud, votre build est dans le Cloud, alors pourquoi pas votre IDE ?

J'ai passé pas mal d'années à gérer un document de "mise en place de l'environnement de développement", un pavé décrivant pas à pas comment installer Eclispe, Maven et tout ça, jamais à jour et lu en diagonale par les développeurs qui mettaient de toute façon plus d'une journée pour avoir quelque chose de carré.



J'ai ensuite tenté de simplifier et d'automatiser un peu les choses (genre, j'étais committer Maven à l'époque, vous voyez le liens ?). J'ai donc maintenu un gros ZIP avec un JDK, Subversion, Maven, Tomcat et Eclipse avec la conf qui va bien "prêt à l'emploi". C'était un peu mieux, mais ça restait compliqué. Au moins je passais moins de temps sous Word :P

De nos jours, je tenterais de gérer ça avec Chef ou Pupet, mais il faut avouer que, si ces outils font des merveilles sur des serveurs Linux, leur utilisation pour gérer les postes de développement Windows est encore un sujet de science fiction.

Quelle alternative ? Certains (ils se reconnaitront) essayent d'y répondre en virtualisant le poste de développement dans de VM, contraignant les développeurs à utiliser des outils bridés dans un environnement peu réactif.

L'autre piste, c'est l'IDE en mode Web - Codenvy explore cette piste.


Codenvy permet de connecter votre repository github à un IDE web Eclipse-like (histoire de ne pas dépayser le développeur lambda ?). Je l'ai testé avec mon projet codestory, histoire de voir.

L'import du projet maven se passe bien - mieux que sous Eclipse diront les médisants ! L'IDE réagit vite et bien. "Rich Internet Application" réalisée selon les bonnes pratiques, l'UI s'affiche très rapidement et les fonctionnalités sont chargées en tâche de fond. L'inverse du portail de support Zendesk que j'utilise tout les jours en fait ...



Evidemment, les actions proposées dans cet IDE sont loin de ce que permet Intelij Idea. En termes de refactoring par exemple, on ne me propose que de renommer ma classe. Cependant, pour un certains nombre de développeurs que je connais, c'est la seule fonction qu'ils utilisent, donc ça ne gènera pas :P


L'autre intérêt de l'IDE web est sa parfaite intégration avec Git d'une part, et avec la plateforme cible d'autre part. Les wizard Git sont très propres et prendront par la main les développeurs novices. Le déploiement vers un PaaS est également très bien pris en compte. Cet IDE cloud se calle donc parfaitement entre les services d'hébergement de code et les services d'hébergement d'applications.

Après quelques essais, l'IDE n'est pas super réactif mais raisonnablement utilisable. Disons que si j'avais un truc à corriger en express pendant Devoxx je pourrais prendre ma tablette et m'en servir pour corriger et pousser un correctif. Le build est lent et je n'ai pas réussi à lancer mes tests unitaires. Bref, je n'ai pas l'intention d'abandonner Idea.

Pour quel usage ? J'avoue que je me pose la question, car on est tout de même très loin du confort d'un IDE classique, dont la puissance de refactoring et d'assistance sera difficile à égaler (mais ça viendra). Cependant, il y a pas mal de scénarios qui m'ont été soufflés sur twitter :


  • les corrections rapides, lorsqu'on qu'on veut "juste" corriger un petit truc vite fait. Le genre de chose qu'on fait actuellement sous Github sans aucune assistance, ici on a un compromis intéressant.
  • les langages qui ne permettent ou ne nécessitent pas une foultitude de refactoring complexes.


Pour du développement Java bête et méchant, je reste sceptique à ce stade. Ce que j'aimerais sur un outil de ce type c'est un mix d'infinitest (test en continu) et de seleniumgrid (tests distribués) sur une infrastructure cloud. Autrement dit, à chaque modification les tests de mon project sont lancés en parallèle et j'ai du feedback en quelques secondes maximum.



25 février 2013

CodeStory & CodeCast

Vous avez raté la finale de CodeStory,
et bien je vais vous éviter de mourir idiot, en vous proposant une séance de rattrapage, et en vous présentant au passage  ...


CodeCast, "le podcast avec du code dedans"


Code-Cast, c'est un podcast vidéo que je vais tenter de faire vivre au fil des événements ou des speakers qui voudront bien se prêter au jeu. L'idée est de filmer une interview, ou un événement techo-geek, et de faire au passage une capture vidéo des écrans pour pouvoir collecter au passage des démos, morceau de code, etc. Il est en effet beaucoup plus simple d'expliquer ce qu'est la syntaxe d'Erlang avec quelques exemples qu'en faisant de grand gestes devant un micro :P

Pour vous donner une idée du ton, voici donc : "CodeStory, il n'est restera qu'un"




Brown Bag Lunch

A la demande de Laurent Huet je vais animer un "12@13" sur CloudBees chez Softeam.  Il y a quelques années je participais chez Orange à des "Midi techniques", et encore avant j'organisait sur la pause déjeuner les "Tip of the week".



Cette pratique est finalement assez répandue dans les sociétés de service : comme il est délicat de dé-staffer les équipes pour des journées de formation technique, et qu'il est déjà délicat de motiver les gens pour suivre ce genre d'événements (sic!), une solution est de prendre sur la pause déjeuner pour organiser un rendez-vous technique, la boîte ayant le bon sens de payer les plateau repas pour que tout le monde s'y retrouve.

David a déjà proposé ses talents pour des "Brown Bag Lunch", et Laurent me fait découvrir le site associé, www.brownbaglunch.fr - il y a déjà un joli pannel de talents pour accompagner vos sandwiches :)

J'ai donc créé une entrée pour les événements bretons, et je me propose de venir dans votre entreprise vous présenter CloudBees et/ou Jenkins, le temps d'une pause déjeuner. Sur Rennes évidemment, mais aussi pourquoi pas plus largement sur la Bretagne (et apparentés), sous réserve que ce déplacement colle avec mon agenda.




contactez-moi si vous êtes intéressés.