Note de lecture : How Google Test Software, par James Whittaker, Jason Arbon & Jeff Carollo

Note : 4 ; Plutôt déçu.

Le livre m’avait été chaudement recommandé, je m’attendais donc à un texte que allait quelque peu bouleverser mon mode de pensée. De ce côté-là, on est loin du compte. Le texte n’est pas médiocre pour autant. Il compte 235 pages dans sa partie principale auxquelles il faut ajouter les 30 pages d’annexes. Il ne compte que 5 chapitres, ces derniers sont donc chacun très volumineux. J’avoue que cela rend la lecture peu plaisante, surtout que le texte est très dense. Les 3 chapitres du milieu sont organisés selon les rôles de l’organisation Google, une articulation que je trouve fort peu heureuse. Voyons cela.

Le premier chapitre est, avec le dernier, le plus court du livre car il ne compte que 12 pages. Cette introduction nous décrit comment l’organisation fonctionne, avec ses 3 rôles au niveau des tests et la philosophie générale : pas de phase de tests en aval et des testeurs délibérément en sous effectifs.

Lire la suite

Publicité

De l’agilité pour mon projet, pour quoi faire ?

J’avais évoqué lors de mon teasing de la DevFest 2013 la présentation que Martin Mouterde et moi-même y ferions. Vous trouverez le support de cette présentation ici.
Préparer une présentation à quatre mains n’est pas un exercice facile. Comme j’ai des idées tranchées et personnelles (mais pas nécessairement bonnes, toutefois) de ce à quoi devraient ressembler des présentations, il reste improbable que je sois réellement satisfait du résultat. Ne comptez toutefois pas sur moi pour dire qui a engendré quoi.
J’ai hésité à modifier cette présentation avant de la poster. Finalement je me suis dit qu’elle devrait figurer telle qu’elle a été jouée () . Même si je la modifie de manière substantielle si je sui amené à la rejouer…

Carnet de route : DevFest 2013 à Nantes, en images (2/2)

Pause déjeuner

Suite de notre parcours de la DevFest. La pause déjeuner à la DevFest, c’est standing. Ca change des sandwiches qui sont le quotidien de certaines autres conférences que l’on ne nommera pas…

DevFest 2013 : Le buffet (1)

Le service ne semble pas en reste.

DevFest 2013 : Le buffet (3)

D’un autre côté, il semble qu’il nous faille mériter notre pitance. La file d’attente s’allonge terriblement.

DevFest 2013 : En attendant le buffet

Passant sur le second créneau de l’après-midi, j’ai courageusement choisi de sauter la première séance d’après-déjeuner afin d’être fin prêt. Nous avons une salle “réservée orateurs” à cet effet.

DevFest 2013 : la salle de repos des organisateurs

Christophe Addinquy & Martin Mouterde : De l’agilité pour mon projet, pourquoi faire ?

C’est notre tour, à Martin et moi-même. Notre session d’introduction à l’agilité n’est pas vraiment un thème “mainstream” de cette DevFest, il est donc peu surprenant qu’elle n’attire pas foule. Une trentaine de personnes environ.

DevFest 2013 : le public de ma session

Je ne vais pas faire de résumé de notre session ici. Je posterais le support plus tard.

Why Google+ Sign In ? Par Ian Barber

Gros fail pour cette session. J’aurais pu me douter qu’elle était en Anglais (et j’avoue que le sujet ne me passionne pas assez pour avoir envie de faire un effort). Mais pire, elle était retransmise par Hang out !

DevFest 2013 : Google Sign In (2/2)

Pour être honnête, je n’ai pas fait d’effort et me suis laissé décrocher assez rapidement. Pas de résumé, donc pour cette session. Je ne suis même pas sûr que le préposé au Hang out ait trouvé cela palpitant !

DevFest 2013 : Google SignIn (1/2)

Break de l’après-midi

Une pause avant la dernière ligne droite. C’est l’occasion de faire un petit tour.

DevFest 2013 : signalétique à l'accueil

D’aller s’intéresser au paysage, aussi.

DevFest 2013 : Stand sponsor (4)

Ou de voir ce que j’ai bien pu rater au programme (et essayer de ne pas rater la dernière session).

DevFest 2013 : le programme

Web Components, l’avenir des développeurs Web, par Julien Vey

Pour ma part, ce fut la meilleure session de la journée, par son contenu et la maitrise du sujet par Julien. Par exemple, on crée des <div> que l’on masque ou l’on crée du DOM via du Javascript…

Demain, il suffira d’utiliser la balise <template> pour créer des fragments HTML qui seront parsés mais ni chargé, ni exécuté, mais qui pourront l’être en instanciant ce fragment d’arbre en Javascript via cloneNode().

DevFest 2013 : Julien Vey (2/3)

Le shadow DOM est un nouveau moyen d’encapsuler un élément. Il est utilisé par exemple dans le cadre de la balise <video>. Mais ce concept est aujourd’hui fermé. Il sera disponible demain aux développeurs, via la méthode createShadowRoot() qui crééra un élément auquel il suffira d’accrocher des sous-éléments. L’un d’entre-eux pourrait d’ailleurs être une balise <content> pour injecter du contenu dans ce shadow DOM.
On peut apparemment mixer DOM et CSS, mais comme je suis imperméable à ces considérations, le mieux sera pour vous d’aller gambader dans les la vidéo de le session de Julien !
Enfin, les Web Components permettent de créer ses propres balises, via la balise <content>.
Bref, les Web Component, c’est l’avenir. Du moins, ce le sera quand la norme sera finalisée, ce qui n’est pas encore le cas. On pourra alors intégrer des Widgets d’un nouveau genre qui ne ressembleront plus à un amas sordide de <div> et de Javascript ! Toutefois, il n’est pas nécessaire d’attendre ce jour béni. On peut déjà utiliser Polymer qui émule l’état actuel de la norme.
Outre l’excellente présentation de Julien, on peut aller vers le site de référence sur HTML5, à savoir htmlrocks pour en savoir plus et surtout trouver les bons tutoriaux !

Check out

La DevFest touche à sa fin, quelques irréductibles s’essaient encore au zPilot et il sera temps de plier les gaules.

DevFest 2013 : Fin de la conférence

Un bon DevFest en ce qui me concerne. Si les sessions front-end sont assez loin de mon habitat naturel, j’ai réussi à ne pas être trop largué, ce qui est déjà pas mal pour moi…

Carnet de route : DevFest 2013 à Nantes, en images (1/2)

La DevFest, c’est l’évènement Google pour les développeurs. Pour être exact, il n’est pas organisé par Google (bien que supporté par le géant de Mountain View) mais par le GDG Nantes. Je m’étais joins aux festivités pour une session d’introduction à l’agilité avec mon collègue Martin Mouterde.

Check-in

On débute tôt la journée ici, les portes sont ouvertes à 8h20 ! Rien à voir avec notre rythme de bâton de chaise Parisien… Heureusement, Martin et moi étions arrivés la veille pour répéter. Café et croissants sont prévus pour accueillir les participants.

DevFest 2013 : Le café en arrivant

Jusqu’ici tout va bien. Direction la keynote.

Keynote : Des opportunités pour s’associer

On a tranquillement rempli l’amphithéâtre pour cette keynote. A priori, nous étions 350. Julien Landuré a délaissé son polo Zenika pour un T-shirt GDG Nantes pour évoquer l’année écoulée.

DevFest 2013 : Présentation GDG Nantes

L’organisation avait aussi prévu une couverture en image plus solide que celle de vôtre serviteur. J’espère avoir bientôt un lien à vous donner.

DevFest 2013 : La photographe

Place maintenant à la keynote ! Une keynote surprenante, car elle ne va pas parler de technologie, mais de collaboration. L’orateur y évoque des outils parfois connus comme les modèles DISC, MBTI ou Process Com. Il en évoque d’autres moins connus comme Strength Finder, qui me donne bien l’envie d’essayer !

DevFest 2013 : Keynote

Connaitre ses forces, c’est une bonne façon de savoir comment les associer, lequelles acquérir pour se renforcer.
S’associer, c’est essayer au travers de Startup Week-ends, Hackathon et autres Roadtrips… si on n’arrive pas à s’entendre sur 2 jours intenses, ce n’est peut-être pas la peine d’insister sur une longue durée…
S’associer, enfin, c’est s’engager :

  1. En formalisant au plus tôt les statuts.
  2. En rédigeant une lettre récapitulant ces statuts.
  3. En s’aidant d’un avocat d’affaire.

Pawel Kozlowsky : AngularJS: making a browser a better development platform

Pawel est l’auteur de ce qui est encore l’un des rare livres sur AngularJS. Il pratique en outre ce framework depuis 3 ans.
Béotien absolu du développement Javascript, je me suis campé dans cette session justement pour cette raison, et aussi pour avoir un peu parcouru les tutoriaux AngularJS…

DevFest 2013 : introduction à Angular JS par Pawel (3)

Pawel le dit lui-même: le développement dans le browser, c’est parfois douloureux ! Les frameworks sont là pour soulager, mais un framework comme JQuery se focalise surtout sur le requêtage du DOM, afin de le rendre plus facile. Ce n’est ni n réel changement de paradigme, ni un “game changer”.
AngularJS propose un binding bidirectionnel entre modèle et vue, sans qu’il soit nécessaire d’enregistrer le modèle, ni procéder à des notifications explicites ! AngularJS est réellement déclaratif ! En fait, une grande partie des fonctionnalités d’AngularJS consiste en propriétés (notées ng-*) qui peuvent être ajoutées aux éléments, tel le ng-repeat qui permet de construire des templates.
AngularJS permet aussi de construire des tags “custom” à l’image des futurs Web Components, ainsi que l’injection de dépendance en JavaScript.
En conclusion, AngularJS, c’est :

  • Du data binding bidirectionnel sur un modèle.
  • Un DSL customisable au-dessus de HTML
  • Un framework complet et solide.

Et une excellente ressource pour commencer : http://egghead.io/

Guillaume Campion : Retour d’expérience sur les Google Glasses

Bien sûr, les Google Glasses, ça attire les badauds, même si la session n’est pas très technique. En fait, même pas du tout !

Les objets connectés, c’est le nouvel eldorado, qu’on se le dise ! Pourtant il n’y en a que 8 paires en France actuellement. Pourtant les “lunettes informatiques” ne sont pas nouvelles. Steve Mann (http://spectrum.ieee.org/geek-life/profiles/steve-mann-my-augmediated-life ) en construit et en porte depuis 35 ans. Chez lui, elles sont vissées à la boite cranienne, car il ne fait pas dans la demi-mesure !
Les lunettes Google disposent des fonctionnalités suivantes :

  • Un touchpad sur le côté.
  • Un appareil photo de 5 Mega pixels
  • 12 GB de mémoire
  • Une mise à jour du firmware tous les mois.

Voilà la bête, sur Guillaume :

DevFest 2013 : 6 mois avec les Google Glasses (2)

Prendre une photo n’a jamais été aussi facile. L’orateur objecte cependant à ce que l’on puisse les considérer comme le nouveau gadget du voyeur.

Prendre une photo n’a jamais été aussi facile. L’orateur objecte cependant à ce que l’on puisse les considérer comme le nouveau gadget du voyeur.

DevFest 2013 : 6 mois avec les Google Glasses (3)

L’interface utilisateur de compose de “cartes”. Pour ce qui est du développement, il peut se faire de 2 façons:

  • Miror API : Ca passe par une connexion permanente chez Google !
  • Natif : C’est un gros un SDK Android (il y a un GDK, mais qui n’est pas encore publié). Ce mode donnera accès aux senseurs des lunettes quand il sera accessible.

En résumé :

  • Les Google Glass, c’est un 6ème sens !
  • On peut toujours les avoir sur soi, mais elles sont non intrusives (pas une réelle réalité augmentée).
  • Un usage plus spontané, ne nécessitant pas les mains et “quasi” see-through
  • Une interface utilisateur différente qui nécessite pas mal de boulot.

J’ai eu la possibilité de prendre une photo de plus près des lunettes (mais pas de les essayer) dans la salle réservée aux orateurs. Voilà:

DevFest 2013 : Les Google Glasses (2)

Et si vous voulez la présentation in-extenso :

Présence Zenika

L’une des raisons de ma présence ici était la présence de Zenika en tant que Sponsor. Notre stand proposait des animations autour de jeux video.

DevFest 2013 : On joue sur le stand Zenika (2)

De manière générale, l’espace était assez exiguë. Celà renforce l’impression d’affluence générée par les jeux.

DevFest 2013 : On joue sur le stand Zenika (1)

Comme à Rennes, une petite photo du staff s’impose

DevFest 2013 : L'équipe Zenika (1)

Je vais m’arrêter ici pour ce post, histoire d’en garder pour un peu plus tard.

Devfest Nantes 2013

Le DevFest Nantes 2013 est une journée de conférences organisée par le GDG Nantes, qui s’inscrit dans un évènement mondial : les DevFests.

Les DevFests sont des événements communautaires de grande envergure à travers le monde, suivant la tradition des Google Developer Days et organisés par des groupes d’utilisateurs locaux. Ils constituent une occasion unique de partager et d’échanger autour des technologies du Web et du Cloud ! Et plus particulièrement sur Android, Dart, AppEngine, Angular JS, Chrome, HTML5, WebGL, Google Drive, Go, GWT… Cet événement sera suivi d’une AfterParty afin de discuter de manière conviviale et faire du networking !

Zenika est partenaire de longue date du Google Developers Group de Nantes et aussi l’un de cette manifestation.

Nous serons aussi parti prenante de l’évènement avec une session que je co-animerais avec Martin Mouterde. La session mérite bien sûr son petit teaser !

De l’agilité pour mon projet : pour quoi faire ?

Les développeurs ne sont pas tous des individus mal rasés, travaillant la nuit et jonchant leur sillage de boites de soda et d’emballages de pizzas.

L’agilité ne se réduit pas à des hurluberlus cherchant à couvrir chaque centimètre carré des murs de post-it multicolores.

Et d’ailleurs, l’agilité, qu’est-ce que c’est ? Vraiment !

Est-ce une nouvelle mode qu’il me faudra subir et passera à mon grand soulagement ? Ou est-ce une véritable réponse à la sclérose et l’inefficacité qui gangrènent nos projets ?

Durant cette session de découverte, nous allons voir ensemble ce qu’est réellement l’agilité, en quoi elle peut vous aider à réaliser des projets qui déchirent tout en y prenant plaisir ! Depuis les principes de base (adaptation aux changements, collaboration et transparence) jusqu’aux pratiques telles que le test-driven développement, le pair-programming, l’intégration continue, etc. nous iront à la rencontre des fondamentaux de l’univers agile.

Enfin, nous dérouleront un jour dans la vie du développeur agile pour comprendre comment les choses se passent. Réellement.

Rendez-vous à Nantes le 8 Novembre pour la DevFest !

Devfest Nantes 2013

Google moves from MySQL to MariaDB

nosql:

Jack Clark for TheRegister quoting Google senior systems engineer, Jeremy Cole’s talk at VLDB:

“Were running primarily on [MySQL] 5.1 which is a little outdated, and so we’re moving to MariaDB 10.0 at the moment,”

I’m wondering how much of this decision is technical and how much is political. While Jack Clark’s points to the previous “disagreements” between Google and Oracle, when I say political decisions I mean more than this: access to the various bits of the code (e.g. tests, security issues), control over the future of the product, etc.

Original title and link: Google moves from MySQL to MariaDB (NoSQL database©myNoSQL)

J’avais déjà évoqué la chose précédemment, aujourd’hui le mouvement est clairement enclenché : c’est la totalité des instances MySQL qui passent sur MariaDB !

Les raisons qui conduisant à ce changement n’ont probablement pas la limpidité de la déclaration officielle. Le “vieillissant” MySQL est certainement l’un des facteurs, cela m’étonnerait que ce soit le principal. Pour ma part j’évoquerais en priorité :

  • Une dépendance à Oracle qui gêne le géant de Mountain View
  • Un manque pratiquement total de possibilité d’agir sur la base de code, les tests n’étant plus accessibles.

En contrepoint, le fait de travailler avec un petit éditeur qui a besoin d’une solide référence et qui est donc prêt à se plier au désidérata du géant de l’Internet a un intérêt évident…

Google moves from MySQL to MariaDB

MariaDB, plus fort que MySQL

On ne peut pas dire qu’Oracle se soit attiré la réputation d’une société ayant bien compris le modèle Open-Source. Parmi d’autres, MySQL en est une bonne illustration.

Ayant acquis la base Open Source par le biais de l’acquisition de Sun Microsystems, il me parait que le géant de la base de données a cherché avant tout à en faire un produit, plutôt qu’un projet open source. 3 éléments me confortent dans cette opinion :

  • Oracle seul décide de la roadmap MySQL
  • MySQL est positionné par l’éditeur en alternative à Microsoft SQL Server. Une stratégie perdante, car les produits ont un positionnement très différent.
  • Oracle verrouille les développements (patch ou fork) en ne releasant plus les cas de tests depuis plus d’un an !

La fondation MariaDB

Dès le rachat de Sun, le créateur de MySQL Michael “Monty” Widenius a créé le projet MariaDB. Comme il l’explique son but à l’origine était de conserver la communauté historique des développeurs du noyau MySQL, noyau qui était en passe de disparaitre.

J’avoue que bien que ce fork ait maintenant plus de 3 ans, il a échappé à mon radar. Pas seulement au mien visiblement, car il semble que son existence fut jusqu’à une date récente assez discrète. Il aura fallu la création de la fondation MariaDB pour booster sa visibilité.

Aujourd’hui MariaDB offre une alternative à MySQL

  • Compatible au niveau binaire
  • Offrant de nouvelles fonctionnalités marquantes.
  • Plus active que la base historique sur le volet des bus fixes.

MySQL semble avoir un peu perdu de vue sa nature première : non pas une base de données, mais un conteneur de moteur de bases de données. Tandis que MySQL vogue avec ses vieillissants MyISAM et Innodb, MariaDB nous propose de nouveaux engines: Aria, XTraDB (une évolution d’InnoDB), FederatedX (un engins utilisant d’autres SGBD en back-end), OQGRAPH (un moteur optimisé pour gérer les hiérarchies et les graphes) et SphinxSE.

Google à la rescousse

La communauté open source n’est pas la seule à s’inquiéter de la mainmise d’Oracle sur MySQL. Des sociétés de taille respectables pour lesquelles MySQL est une brique importante ont eu la même démarche.

L’annonce la plus marquante est sans aucun doute celle de Google annonçant un support au projet. Concrètement il s’agit d’y consacrer un développeur. Par rapport aux moyens dont dispose le géant du Web et l’importance structurelle de MySQL dans ses infrastructures, cela parait anecdotique, mais le message est là. D’après Widemius, d’autres société sont prêtes à aller dans le même sens, mais on n’a pas de noms…

Une alternative encore verte

Pour assoir une emprise sur le marché, il faut un packaging de bonne qualité. La fondation MariaDB propose des packaging prêts à l’emploi pour les plateformes Linux (Red Hat, Fedora, Debian, Ubuntu…) et Windows.

Mais point de distribution Mac ! Il faut passer par Homebrew avec compilation des sources et quelques petites manipulations … Ca ne va pas tout seul, autant le dire. Bref, ça va en rebuter quelques un. La fondation MariaDB explique que cette absence est due à leurs moyens limités.

Autre point faible : la documentation. Bon, elle existe, toutefois. Mais elle n’est pas vraiment au niveau. Pas de vrai autorail et les informations d’installations et de configurations sont assez éparses. Dans l’ensemble, les informations sont rassemblées sur le site ask monty. Bref, il y a encore à faire.

Côté bouquins, j’ai trouvé 2 titres sur MariaDB. Rien à voir avec la pléthore de livres sur MySQL.

Y aller ou pas ?

Aujourd’hui, je ne conseillerais à personne d’aller volontairement vers du MySQL, à moins que ce choix soit subordonné à un autre. Nombreux sont en effet les projets pour lesquels MySQL est sinon le choix par défaut, du moins un choix “pré-packagé”.

D’un autre côté, des distributions Linux commencent à venir avec MariaDB comme base par défaut en lieu et place de MySQL. De plus, il y a la “compatibilité binaire” revendiquée par MariaDB. Mais celle-ci doit encore se vérifier de contexte en contexte.

Côté Java, à priori MariaDB est toujours compatible avec le connecteur JDBC de MySQL. Mais il existe aussi un connecteur JDBC natif Maria DB.

La situation pour les autres langages est moins claire. Il existe bien un connecteur C dans ce qui est produit par la fondation, mais pour Python, Perl, etc… Il faut à priori utiliser les utilitaires gravitant autour de MySQL et faire des essais. Si l’on va faire un tour du côté de Stackoverflow, on voit que les choses ne sont pas si simples.

La tendance actuelle est un passage vers PostgreSQL (). Cette base est mieux qu’une alternative et est de plus en plus privilégiée à MySQL, non comme solution de replis mais en tant que solution techniquement meilleure.

Il me semble cependant qu’au vu de la roadmap déjà réalisée par MariaDB et de celle à venir, que cette alternative mérite considération, malgré les faiblesses dont il est fait mention.