CloudBees et Cloud-IDE en 11min28s

Vendredi 20 octobre s’est déroulé le traditionnel BOF (Birds of Feather, selon Wikipedia, « petit groupe de discussion informel crée dans le but de résoudre un problème ponctuel dans un groupe de travail ») chez SFEIR. Autrement dit, une quinzaine de geeks assemblés dans une salle pour discuter des derniers sujets qui les bottent… C’était l’occasion pour moi de rapporter à mes collègues une présentation vue lors de l’OSDC 2012 qui s’est déroulé la semaine dernière à Paris, par Sacha Labourey, CEO de CloudBees.

En quelques mots, l’OSDC, c’était un peu bizarre. En effet, s’adressant autant à des décideurs que des développeurs, le contenu des conférences était un peu bancal et l’on sentait bien que les conférenciers n’étaient pas toujours à l’aise… De plus les locaux bien que situés idéalement (Georges V à Paris,  excusez du peu…) n’étaient pas vraiment adaptés (salles trop petites, programme pas très clair, porte d’entrée des salles à côté des speakers, créneaux cours entre les conférences…). Pourtant, apparemment ce n’était pas faute de moyens…

Bref, revenons à nos moutons. J’avais déjà eu l’occasion de voir Sacha Labourey au Paris JUG pour nous parler de Cloud, et j’ai trouvé sa présentation une fois de plus pertinente. Mise à part la partie commerciale de son discours (encore une fois OSDC oblige…), il a terminé par une démonstration bluffante des dernières fonctionnalités de CloudBees, en particulier le ClickStart. Le ClickStart, qu’est ce que c’est ? Et bien c’est la possibilité de créer une usine de développement en un clic. Comprendre par là que CloudBees propose différentes configurations de projets Java par défaut (genre un projet Jax-RS / Backbone, un projet Clojure ou encore un classique Java EE6), et en un simple clic CloudBees va créer un repository Git avec un archetype du projet, un job Jenkins qui sera capable de compiler et déployer tout ça sur une instance de serveur, accompagné de sa base de données… Bref, du tout en un, fonctionnel, et personnalisable à posteriori (rediriger vers un repo Github, changer la bdd, et j’en passe…)

Sacha Labourey a beaucoup parlé de « scalabilité », de stabilité, de support de la part de personnes compétentes (petite pensée pour Nicolas De Loof). Moi j’aimerais surtout insister sur le fait que ce genre d’initiatives permet de ne plus se préoccuper d’infrastructure, et de ces tâches récurrentes qui font perdre un temps fou. Alors ok, le « barbu » technique trouvera très important de mettre en place toute son infrastructure soit-même, bien optimisée comme on le souhaite, et c’est surement vrai dans beaucoup de cas. Mais si l’on souhaite se concentrer sur le coeur du problème, sur l’idée elle-même et ne plus perdre de temps sur toutes les choses autour, pour moi les avancées CloudBees vont dans le bon sens. Bref, si je suis tout seul et je veux tester un concept rapidement, et bien c’est clairement la solution. Qui plus est c’est gratuit, ça marche impeccablement bien, et je vous encourage à tester tout ça par vous-même !

Ce vendredi, en 11min et 28s, j’ai donc tenté d’évangéliser mes collègues en reproduisant tout ça avec ma vision des choses. J’en ai profité pour découvrir Cloud-IDE qui est vraiment un outil  prometteur…

Et c’est visionnable sur Youtube ! (d’ailleurs n’hésitez pas, abonnez vous au flux SfeirTube pour toutes les présentations SFEIR !)

LB.

[Galaxy Nexus][Jelly Bean][Mise à jour] Yakjuxw et Yakju : un tutorial

Si comme moi vous vous étonnez du retard dans les mises à jour de votre Galaxy Nexus, sachez qu’il y a une explication assez simple. Pour faire court, certaines Rom du Galaxy Nexus sont gérées par Google himself, et d’autres par Samsung. Il se trouve que pour la peine, les mises à jour des téléphones gérés par Samsung ont pas mal de retard. Par exemple pour passer de la 4.0.2 à la 4.0.4, il y a eu deux bons mois de retard par rapport aux natifs. Et avec la sortie de Jelly Bean, j’ai voulu y remédier.

Déjà, comment être sur que vous avez une version Samsung, autrement dit « Yakjuxw » (il y a d’autres noms de versions encore il me semble…). Pour savoir, un test simple :

  1. Vous ouvrez Google Maps
  2. Paramètres
  3. A propos
  4. « Appareil » vous affichera peut-être Yakjuxw, si vous êtes dans mon cas…

Mais que l’on se rassure, il est tout à fait possible d’installer une Yakju standard pour avoir les mises à jour au fur et à mesure des sorties Google ! Pour cela, je vais vous rediriger (oh la facilité) vers un super tutorial que j’ai suivi pas à pas et qui a fonctionné parfaitement du premier coup…

http://www.romandroid.ch/discussions/galaxy-nexus-tuto-pour-passer-de-yakjuxw-yakju

J’aurais cependant quelques conseils… Il faut savoir que flasher son téléphone revient à tout effacer, y compris ses données ou ses textos. N’oubliez donc pas de faire une sauvegarde de vos photos par exemple. Pour les textos, j’ai installé une application que l’on m’a conseillé et qui a très bien marché : SMS Backup + qui a pour particularité de sauvegarder l’intégralité de ses textos sous un libellé GMail. C’est finalement assez pratique pour pouvoir indexer ses textos (une adresse, un code, que sais-je…)

La deuxième chose à prendre en considération, c’est que l’auteur donne des liens qui ne sont pas à jour.

  • Premier lien de l’étape 1.1, ne pas cliquer, aller le chercher directement sur cette page : http://forum.xda-developers.com/showpost.php?p=20058157&postcount=1
  • A l’étape 2.1, l’auteur donne un lien vers une ROM 4.04. Google a fourni une mise à jour, ce qui nous permet d’installer directement Jelly Bean ! Pour télécharger la ROM de son choix, il faut aller ici :
    https://developers.google.com/android/nexus/images et sélectionner dans notre cas la ROM Yakju 4.1.1
  • Le point précédent implique qu’il faut prendre garde aux étapes 3.8 et 3.10 !! Le nom des fichiers diffère de ce qui est écrit en fonction de votre téléchargement, bien évidemment…

En tout cas un gros bravo à l’auteur pour ce tutoriel. J’ai un beau Jelly Bean tout neuf, ma seule perte étant mes scores Angry Birds ! 😉

LB.

Programatoo : Jouer à programmer

Programatoo : Jouer à programmer

En voilà un beau slogan ! Mais concrètement, Programatoo, qu’est ce que c’est ? C’est une partie de la réponse à la fameuse question : « Mais Maman / Papa, tu fais quoi au travail ?! » Pas facile à expliquer pour nous, développeurs, hein ? Et bien les gens de Programatoo sont là pour vous donner quelques pistes… Il faut savoir qu’il existe plusieurs outils pour faire jouer (coder) des enfants à partir de 8 ou 10 ans, jusqu’à pas d’age… Il n’y a qu’à voir le temps qu’on a pu passer dessus dernièrement avec quelques collègues!! 🙂

Mais Programatoo, c’est un peu plus que ça… Cette initiative s’inscrit dans un mouvement mondial qui part du principe que l’informatique est une science relativement jeune, et que nous pourrions faire des progrès dans l’apprentissage et  l’éveil à la logique algorithmique. Mais voilà, l’étape maintenant c’est de s’équiper d’outils adaptés à cet apprentissage, avec du fun, de l’ergonomie, et encore du fun. Il en existe (cf liens en bas de page), mais pas toujours en Français, ou pas toujours très funky…

Bref, il faut des idées, et du temps ! Un exemple concret d’action, c’est l’atelier pour les enfants organisé à Devoxx France, avec un franc succès à la clé !

En tout cas bravo à l’équipe de Programatoo (Audrey et Aline, de chez SFEIR), et si vous avez des idées ou que vous êtes motivés par le concept, n’hésitez pas à les contacter !

Contact
Mail :
programatoo@sfeir.com
twitter :
https://twitter.com/#!/Programatoo
G+ :
https://plus.google.com/105050554172452836044/about (avec une petite liste d’outils, entre autre TortueScript développé par Salvador Diaz, ou encore Scratch, un chouette logiciel à installer sans hésitation…)

LB.

Retour d’expérience sur binômage

Je suis arrivé chez SFEIR la fleur au fusil au milieu du mois de Janvier. Mon objectif était entre autre d’avoir l’opportunité de me former à de nouvelles technos, ou en tout cas plus récentes que Struts 1… 🙂 Et sur ce point là, je n’ai pas été déçu ! Je suis arrivé en intercontrat, et je devais donc user de mon temps à me former. Mais voilà, une autre personne est arrivée en même temps que moi…
Continuer la lecture de « Retour d’expérience sur binômage »

De la pertinence de GWT

Cette semaine je suis tombé sur deux articles de deux toulousains bien connus qui parlaient de GWT. Je n’ai pas un très grand recul sur GWT, mais les articles sont intéressants, alors autant vous les faire partager et donner mon humble avis en quelques mots.

Le premier article, écrit par Florent Garin de la société DocDocku (et membre du ToulouseJUG of course), a un titre des plus explicites : « GWT est-il toujours pertinent ? » Bon, qu’est ce qu’il veut dire par là ? En quelques mots, en mettant en avant une abstraction totale du Javascript, GWT est un frein à la mise en avant des fonctionnalités HTML5 innovantes des navigateurs. Bref, pour le côté métier c’est bien, mais pour l’innovation pure, non. Quid des bibliothèques de Widget ?

Ainsi Ex GWT, SmartGWT, Vaadin pour ne citer qu’eux disposent de composants de plus haut niveau, prêt à l’emploi. Malheureusement ces bibliothèques n’ont jamais donné pleinement satisfaction : licence peu « business friendly », adhérence importante, problème de qualité. Au final, la sagesse recommande de se contenter de GWT et de tout développer soi-même…

Donc, pour Florent Garin, GWT a ses atouts, mais une complexité grandissante (activities / place), ne permet pas d’abstraire le CSS, et est un frein à l’innovation HTML5. Bref, c’est « imparfait ».

Pour répondre à cet article, Sami Jaber (auteur d’une des bibles de GWT )a écrit ceci : « Oui, GWT est plus que jamais pertinent« .
Au moins c’est clair 😉 Si je devais résumer en quelques mots ses arguments:

  • Au moins GWT offre un socle HTML 5 solide, et indépendant des frameworks Javascript à la mode et non pérenne. Et d’un point de vue stratégie d’entreprise, c’est important.
  •  » la richesse de GWT est dans des API telles que ClientBundle qui permet de créer des scripts JS téléchargés avec les spécificités CSS propres à chaque navigateur ou moteur de rendu en fonction des règles du DeferredBinding« 
  • «  La richesse de GWT est dans sa capacité à diviser le code (énorme) JavaScript en plusieurs fragments à la manière d’un ClassLoader Java« 
  • La richesse de GWT est dans sa capacité à fournir un environnement de développement hors pair permettant de débogguer comme en Swing, de tester avec JUnit et de refactorer sous son IDE fétiche. Imaginer un instant développer une application JavaScript de 200.000 lignes de code comme on le fait aujourd’hui en Java est tout simplement insensé

Je vous encourage à lire les articles qui sont bien évidemment plus nuancés que NON / OUI. Par exemple, Sami Jaber ne nie pas la complexité du pattern Activities / Place. Pour l’avoir découvert au cours de ce dernier mois, j’avoue qu’il n’est pas si simple de l’appréhender, et que ça demande un peu de pratique et beaucoup de rigueur. Je doute de son utilisabilité dans une équipe de niveau un peu trop hétérogène… Pour le reste de mon expérience, j’avoue que l’abstraction du Javascript m’a fait énormément plaisir! UiBinder par exemple, pour dessiner ses widgets et leurs donner vie, un vrai super outil! Sans compter l’énorme plus : le débuggage…
Et puis c’est un peu hors sujet, mais la facilité de déploiement sur l’AppEngine avec le plugin Eclipse, c’est quand même énorme… Adieu tous mes scripts ANT ! 🙂

A vrai dire, je pensais que GWT serait plus simple à appréhender dans sa globalité. En effet, la documentation est chouette mais peut-être un peu floue à certains moments (toujours sur A&P, j’ai pu voir différentes implémentations sans en comprendre les nuances et les intérêts.) Mais une fois passés les premiers tâtonnements, j’ai vraiment apprécié utiliser GWT au jour le jour grâce à sa multitude d’outils très chouettes (RPC, UiBinder…)

Et puis si on se projette beaucoup plus loin, ne peut-on pas imaginer que nos deux auteurs vont faire converger leurs avis si Dart arrive à s’imposer comme un langage natif dans nos navigateurs, et comme socle de GWT ? N’est ce pas le chaînon manquant ? (pour se tenir au courant sur Dart, ça se passe ici…)

LB.