Take Off Conference Lille

La TakeOff Conf : Web, Hardware et bonnes pratiques

La fin de la semaine dernière fut non seulement soldée par notre emménagement dans nos nouveaux locaux, mais aussi par la TakeOff Conf. La TakeOff, c’est un cycle de conférences anglophones incontournable pour les développeurs et autres “techos” de la région Lilloise. L’événement dure 2 jours, et accueille des speakers du monde entier. Ikomobi y était bien sûr représenté : retrouvez ci-dessous notre synthèse de l’événement.

Commençons par vous en préciser le contexte. La Take Off est une conférence un peu différente des autres. Elle est complètement perchée dans les étoiles. Notre maître de cérémonie, vêtue d’une robe Pac-Man, pose un décor Game Of Thrones pour introduire la conférence.

Elle continuera dans cette ambiance toute la journée, introduisant chaque speaker avec beaucoup d’humour. Le lendemain, c’est Darth Leïa qui nous accueille, vêtue d’un capuchon de Sith et armée d’un sabre laser. Bref, l’ambiance et le décor sont là pour ravir l’assistance.

Les conférences aussi sont un peu différentes. On trouve des conférences un peu plus abstraites, plus philosophiques, plus inspirantes. Bref, sans plus tarder, voici ce qu’il fallait voir !

 


Sommaire


Du Web !

La Take Off reste avant tout une conférence pour les développeurs Web. Cependant, l’ensemble restait accessible pour les développeurs en général.

La keynote qu’il faut absolument retenir fut donnée par Robin Berjon, et s’intitulait “Your own adventure web” derrière ce nom mystérieux se cache avant tout une philosophie de développement pour le front-end. Il s’agit des WebComponents.

On en avait déjà entendu parler l’an dernier à la Google I/O.  Les développeurs l’annonçaient alors comme un mouvement tectonique dans le monde du web, et c’est en effet une véritable révolution. Aujourd’hui, lorsque l’on importe un composant web dans notre front-end, cela consiste souvent à ajouter un fichier de CSS, un fichier javascript à notre page HTML, puis ajouter un identifiant, une classe CSS ou un attribut sur un élément web pour que tout marche comme par magie !
Oui mais ça, c’est le passé.
Les Web Components c’est l’avenir. Il s’agit de changer cette construction du web qui est peu lisible, difficilement compréhensible et donc peu extensible, et difficile à maintenir.

L’astuce réside dans une exploitation totale du HTML, qui est basé aujourd’hui sur XML. C’est à dire que le langage est extensible. Plutôt que de créer un élément “div” et de lui ajouter une classe CSS “bigRedButton”, il faut pouvoir créer un élément “BigRedButton”. De même, il faut que le Javascript qui anime ce bouton ne soit plus magique. Il faut au contraire créer une API Javascript bas-niveau qui ait l’air d’être native. De cette façon, le script pour animer ce bouton semblera tellement simple que l’on aurait envie de le laisser dans sa feuille HTML.

Les WebComponents, c’est du web plus simple, plus clair, plus agile et plus accessible.

D’autres conférences sur le Javascript ont également tenu les développeurs en haleine.
L’une d’entres elle fut présentée par Quentin Adam, CEO de Clever Cloud, un Nantais acteur principal de la scène Startup locale. Il est venu nous parler d’une autre révolution dans le monde du Javascript. Le Javascript c’est avant tout l’enfer des CallBacks. Exemple : le framework MongoDB qui propose pour seule interface, un seul et unique callback.

Bref, tout ça c’est fini ! Quentin vient nous parler des Promises et des Futures en Javascript. Ce sont des concepts de programmation concurrente qui sont assez fréquents dans d’autres langages comme l’Objective-C, et qui sont maintenant possibles en JS. Si vous n’êtes pas familier avec ces concepts, soyons honnête, ce sont des concepts de mathématique algébrique avancés qui donnent envie de dormir quand on en lit le livre.

Mais en pratique, ce sont des choses simples à mettre en oeuvre, et qui permettent d’écrire du code beaucoup plus simple à lire. Et surtout, elle permet de s’affranchir des systèmes de callbacks. Cela rend le code plus simple à comprendre, et donc à maintenir. Tout ça est permis grâce à PACTA, une librairie Javascript agnostique, c’est à dire qu’elle peut être utilisée aussi bien sur Node.JS que pour le browser. PACTA est basé sur la spécification Fantasy-Land, a.k.a Algebraic Javascript Specification.

Il y eut également plusieurs grand-messes. L’église Angular a eu la sienne, tout comme l’église Ember. Enfin, Matthieu Lux a donné un talk concernant l’intégration continue et les méthodes qui permettent d’industrialiser le développement en javascript, en particulier à l’aide de Grunt. Associé à d’autres technologies comme Jasmine, il est possible de structurer son développement front-end, afin d’en faire process de développement aussi robuste que ce que connait Java. D’autant plus qu’aujourd’hui, NPM et Bower permettent de mieux gérer les dépendances entre les différentes librairies et ont vraiment un effet de levier sur la structure d’un projet JS.

Nous avons également pu assister à différentes présentations concernant le NoSQL. Cette technologie très innovante consiste à utiliser des bases de données non-conventionnelles pour de meilleures performances et une meilleure agilité. Nous avons notamment eu la chance d’avoir des présentations de deux personnes de CouchBase, l’anglais Matthew Revell nous a proposé un état de l’art des différentes solutions NoSQL, tandis que son collègue Munichois, Philipp Fehre, nous a expliqué comment manipuler le schéma d’une base de données JSON afin de gagner en agilité dans le stockage de données.

Du Hardware !

Il y avait également plusieurs conférences sur le Hardware. Michael Wawra de Twillio a ouvert la conférence avec un talk nommé “We made a hack. With fire. A gun. And some robots” qui décrivait un montage qu’avait fait toute l’équipe de Twillio afin de déclencher un appel sur un smartphone. Celui-ci impliquait un énorme crayon d’environ 1Kg suspendu comme un bélier, une souris mécanique, ainsi qu’un chat robot,  ou encore une corde qui était coupée par la flamme d’une bougie chauffe-plat. Ce montage fantastique avait bien évidement un objectif ludique, certainement du team-building.

Une autre conférence de Gregory Estrade nommée “Payment revisited: Marketplaces, micro-merchants and mobile acceptance” nous a présenté différentes solutions pour le paiement. Ce qui nous a intéressé ici, c’est la présentation d’une solution de Point De Vente pour mobile. Un vendeur peut associer une forme de lecteur de carte bleue pour recevoir le paiement. L’ensemble du système s’adapte facilement sur une plate-forme e-commerce ou m-commerce.

Les imprimantes 3D

Mais la conférence qui a vraiment fait rêver l’assistance fut celle de Orlando Kalossakas, @PostManOrlie, qui nous a parlé des imprimantes 3D. Voici une restitution de sa conférence, très complète.

Les imprimantes 3D trouvent différentes applications dans l’industrie. Elles permettent de réaliser avec grande précision des pièces d’aéronautique. On peut ainsi réparer, à des coûts imbattables des avions endommagés, alors qu’on est encore à bord du porte-avion, par exemple. Par ailleurs, ces pièces sont plus légères que celle qu’elles remplacent, ce qui représente une grande économie de carburant. Une autre application concerne le prototypage. Ainsi, les ingénieurs qui ont conçu le nouveau moteur de la Formule 1 ont usé et abusé d’imprimantes 3D afin de bénéficier d’un développement Lean et Agile de leur solution.

Bien sûr, les imprimantes 3D de l’industrie ne sont pas les mêmes que celles que nous aurons à la maison. Il y a différents modèles et méthodes qui donnent des résultats différents.

La première méthode est appelée “Fused Deposition Modelling”. Il s’agit de chauffer le plastique pour en faire une forme de ketchup et d’appliquer des boudins côte à côte. Cette pratique est l’une des plus simples, mais les résultats donneront toujours une texture fort granuleuse, voir fileuse.

Une seconde est appelée “Stéréolitography”. Elle consiste à déposer une forme de résine légère qui est passée au laser pour se solidifier. La texture des résultats est bien meilleure, mais le tout doit être cuit dans un four à UV pendant presque une heure afin de solidifier définitivement.

Enfin, la plus onéreuse est appelée “Selective Layer Sintering”. Une couche de poudre est déposée et un laser en fixe l’essentiel. On construit le tout couche par couche. La méthode est assez complexe et l’on se retrouve souvent à extraire l’objet d’une montagne de poudre.

Il existe différents modèles d’imprimantes 3D. La première et être la plus fun est la “RepRap’s Prusa Mendel”. Il s’agit d’un modèle Open-Source. La liste des composants est disponible sur github et wikipedia. Il est possible de télécharger les modèles des pièces sur le site web, pour pouvoir ensuite les imprimer et monter son modèle. L’ensemble coûte quelques centaines d’euros. Cependant le résultat est assez spécial. Il faut bien comprendre que ce modèle est peut-être le plus évolutif, mais aussi celui dont le résultat est le plus variable. C’est une imprimante dite Do-It-Yourself, le résultat dépend donc relativement de votre capacité de bricoleur. Il est également très peu constant.
Il existe d’autres modèles plus fiables. En particulier la Ultimaker2 qui est la plus répandue. Cependant la Makerbot devrait être “the next big thing”.

Il existe également un service appelé ShapeWays. C’est une plateforme sur laquelle les vendeurs déposent des modèles qu’il est possible d’acheter. ShapeWays se charge de les imprimer et de vous les envoyer. C’est vraiment une site web extraordinaire pour acheter des objets peu communs.

Orlando nous a ensuite présenté ce qu’on attend dans le domaine de l’impression 3D pour 2014.

  • Plus rapides
  • Multi-matériaux, mais aussi multi-couleur
  • Impressions de Circuits Electroniques

Alors que les deux premières avancées sont surtout des innovations incrémentales, l’impression de circuits serait un grand bouleversement pour les makers. On pourrait non seulement imprimer la forme des objets, mais aussi les circuits électroniques qui les animent, leurs permettent d’être intelligents.

De l’inspiration

Nous avons également pu assister à différentes conférences inspirantes. On retiendra notamment la conférence du Hollandais, Paul Verbeek, qui a fait également impression à l’After-Party, intitulée :

“Developing the Developers”

Paul nous a expliqué comment former des développeurs. Partant du constat que 80% des développeurs se considèrent comme autodidactes, Paul nous explique comment former de bons développeurs. Il amorce avec une analogie avec Star Wars, où Luke Skywalker est un apprenti et Anakin Skywalker est un stagiaire. Anakin ne sait pas pourquoi il devient Jedi, il ne sait pas s’il va rester dans votre entreprise ensuite, il présente une grande force, des compétences incroyables. Luke n’a pas de compétences particulières, il a surtout une ambition, il veut devenir un Jedi ! Paul nous a donc donné de nombreuses recommandations basées sur son inspiration personnelle, afin que nous soyons d’excellents mentors pour nos apprentis. C’était vraiment très inspirant !

Haleigh Sheehan de Github nous a également donné une conférence passionnante. Haleigh est une artiste, et elle aime en particulier les arts improvisés comme le théâtre d’improvisation, le jazz ou encore un type de danse du ventre en groupe. Son message était une analogie entre l’art improvisé et l’open-source. Ce qu’elle a appris de l’improvisation fonctionne aussi avec l’Open-Source :

“Arrêtez de vous inquiéter à l’idée de tout foirer et apprenez à adorer la bombe”.

 

L’Open-Source est un monde collaboratif, où le leadership est plus important que le management. A l’image d’un demi de mêlée au Rugby qui dirige le groupe des avants en jouant la balle, pas en donnant des consignes du bout des bras. Il y a une certaine interactivité entre les développeurs et les utilisateurs de la solution. Celle-ci est amplifiée par la transparence qu’offre le développeur. Le process est un flux qui va toujours de l’avant. Il utilise sa flexibilité, son agilité pour apprendre. Les erreurs sont des imprévus, mais cela peut aboutir à un meilleur résultat que celui qui était attendu. A l’image du joueur de jazz qui, sur une erreur, peut aboutir à l’une des plus belles chansons qu’il ne jouera jamais.

Des bonnes pratiques

Ce fut tout d’abord le DevOps qui fut à l’honneur. L’allemand Ole Michaelis a pris d’assaut le public avec la devise des DevOps :

“You Build It, You run It !”

 

Si vous ne savez pas ce qu’est le DevOps, en voici une brève explication. C’est un changement radical de l’organisation, il s’agit de fusionner les équipes de développement et de production. Beaucoup de développeurs ne se soucient pas des performances en production. On entend souvent : “Ca marche très bien sur ma machine”. Ce qui est un problème dans la mesure où l’on ne livre pas la machine du développeur.

Le développeur doit se soucier de savoir si ça tourne correctement en production. Par ailleurs, le DevOps est l’art de l’automatisation du déploiement. Il est important d’arrêter de faire toutes ces tâches répétitives de mise en production. Cela doit se faire simplement et efficacement. Le DevOps donne également tout son sens aux méthodes d’A/B Testing qui consistent à déployer en parallèle deux interfaces différentes pour voir laquelle rencontre la meilleure adhésion de la part des utilisateurs.

Le DevOps permet de faire de la “Production as a Service”. Cela permet de faire de la livraison continue, du déploiement continu. Il nous a également donné quelques conseils pour faire du déploiement correctement.

La conférence qui a sollicité le plus de tweets fut sûrement celle d’Andre Jay Messiner. Andre nous a parlé de la Qualité dans le développement. La majorité du temps, les logiciels sont testés lors de la recette sur le tout dernier iPhone 5S, avec un wifi de bonne qualité. Pensez-vous vraiment que cela soit représentatif de l’utilisation réelle ? Andre nous a fait part de son regret de voir les démarches de test réfléchies si peu courantes.
Il est nécessaire de tester pour le monde entier et sur de véritables devices. Pour permettre cela, Andre a créé l’ODL (Open Device Lab). Il s’agit d’une plateforme de test mondiale. Différents laboratoires se sont formés, notamment un à Paris. Il est possible de faire don de ses vieux téléphones usagés, afin qu’ils soient utilisés pour des tests à distance. Cette approche permet de répondre avec une approche globale à un problème local.

“Personne n’est étonné que dans l’industrie automobile on fasse des crashs tests avec des voitures réelles après avoir passé des heures à tester sur simulateur”

Personne n’est choqué qu’un pilote d’avion fasse des heures de tests en simulateur, ni que l’avion soit réalisé sous la forme d’un Iron Bird afin que l’on fasse des tests de formation. Ou encore moins que les avions soient testés pendant des heures par des pilotes expérimentés avant d’embarquer des voyageurs.

Par contre, les logiciels, que ce soient des applications mobiles ou des sites de e-commerce, sont très rarement testés. C’est d’ailleurs pourquoi, chez Ikomobi nous disposons de solutions de tests automatisés, nous permettant d’assurer la qualité de nos logiciels.

Kevin Burke de Twillio nous a montré comment ils ont développé des librairies clientes pour leurs APIs afin de faciliter leur utilisation. Ils nous a expliqué comment automatiser leur déploiement avec des tests d’acceptations. Ces tests servent également à générer la documentation. L’ensemble est un groupe de bonnes pratiques concernant la production et la maintenance de librairies.

Enfin, Kathryn Rotondo, spécialiste du développement d’applications pour les enfants nous a livré une série de bons conseils concernant l’expérience utilisateurs des applications pour ce public. Typiquement, il faut se rendre compte que les enfants utilisent généralement une main, pendant que l’autre se repose, souvent même sur le bord de l’écran. Il est compliqué de leur demander de secouer l’appareil. Ou bien, il ne faut pas oublier de faire une petite animation au bout d’un certain temps, au cas où l’enfant n’ait pas compris ce qu’il doit faire ou qu’il ait juste perdu sa concentration.

Des experimentations !

Ce sera la conclusion pour cet article. Une conférence pour développeurs ne serait pas fun sans quelques démos et lives codings spectaculaires. Les développeurs de BlackBerry nous ont montré ce qu’il était possible de faire avec la technologie de développement Cross-Plateforme Qt. Cela consistait notamment en un moniteur cardiaque branché en Bluetooth Low Energy, le speaker devait faire des pompes et des flexions pour faire monter son rythme cardiaque afin que la musique reste à un rythme constant. Le second speaker courait au travers de la scène en badgeant son tag NFC sur son smartphone. S’il ne faisait pas l’aller-retour assez vite, le publique lui lançait des balles en mousses.

Francesc Compoy Flores nous a montré la puissance du Go. Avec quelques lignes de code, il a développé un programme parallélisé permettant de générer de la musique à partir de symboles. Il nous a ainsi interprété la marche impériale de Dark Vador, parmi d’autres symphonies.

En bref

La TakeOff Conf a su garder son identité. Toujours aussi décalée, elle pose un décor.
Le contenu a évolué. Alors que l’an dernier, elle était très centrée sur le Web et le JavaScript, cette année elle nous a donné un tour d’horizon des nouveautés à venir pour l’an prochain. Elle nous propose aussi un contenu plus culturel, décalé, sur le savoir-être des développeurs.
Nous en profitons pour remercier toute l’équipe des organisateurs, qui se sont franchement investis dans l’évènement cette année. En espérant, vous y rencontrer l’an prochain !

2 Commentaires

  1. “Les WebComponents, c’est du web plus simple, plus clair, plus agile et plus accessible.” Je suis loin de partager cet enthousiasme. Je vois les Web Components comme le cache-misère officiel de la soupe de façon jQueryUI qui vient ruiner la sémantique et l’accessibilité des pages Web depuis des années. On venait à peine d’arriver à un support correct de input:date avec des saisies optimisées pour chaque classe de périphérique que l’on voit plein de gens débarquer fièrement avec leurs propres components Calendar qui bien évidemment offre une ergonomie désastreuse sur les devices et navigateurs atypiques, sans que les éditeurs de ces navigateurs puissent y faire quoi que ce soit ! “Shadow DOM”, rien que le nom devrait vous convaincre que c’est le mal incarné, l’anti-standard standardisé…

  2. La gestion des dépendances et des conflits de nommage risque d’être complexe. On compte sur Bower, par exemple, pour faire ça proprement.
    Mais oui, les WebComponents permettent le pire et si les développeurs font n’importe quoi ça peut être désastreux.

    Cependant, je veux bien que l’on autorise le pire, si cela nous permet d’espérer le meilleur.

Enrichissez cet article !

Nous apprécions énormément vos commentaires constructifs : n'hésitez pas à répondre ci-dessous !