Mix-IT Lyon : Atelier « Le JavaScript du futur au bout des doigts »

Marty, il te faut penser en 4 dimensions !

Emmett Brown, Hill Valley, 1955

1319634128

 

C’est à partir de ce postulat que j’ai réalisé l’atelier pour le Mix-IT, conférence qui se tiendra à Lyon du 16 au 17 avril. Car tout comme pour HTML5 il y a quelques années (vous pouvez voir les slides du séminaires), je me suis penché sur une question fondamentale : oui ou non devons-nous nous lancer dans l’aventure de ES6 / ES2015 ?

Ces termes, vous avez certainement eu à les entendre en écoutant les nouvelles autour d’Angular 2.0, de React, ou de la naissance de frameworks comme Aurelia, frameworks qui se basent sur les nouvelles normes EcmaScript. De ce fait, moi développeur JavaScript, que dois-je me poser comme questions afin de réaliser une application JavaScript du futur ?

Je devrais peut-être savoir :

  • Quelles fonctionnalités EcmaScript sont présentes au sein de nos navigateurs ?
  • Devons-nous mettre en oeuvre des polyfills ?
  • Quels outils utiliser ?

En somme, l’objectif de cet atelier est à la fois de montrer de quoi l’avenir sera fait, mais aussi et surtout ce qu’il faut savoir et mettre en oeuvre afin d’y arriver.

 Save the date

Je vous propose plus de renseignements sur l’atelier sur le site de la conférence et vous donne rendez-vous le jeudi 16 avril de 12h30 à 14h30.

Retrouvez également le programme de la conférence Mix-IT 2015.

 

dotJs 2014

Ce lundi 17 Novembre, j’ai eu l’opportunité d’assister à la troisième édition de la « dotJS« . Initiée en 2013, elle a pour but de créer en France une conférence européenne autour du monde JavaScript.

20141117_093359

Grosse originalité, nous nous sommes retrouvés au théâtre de Paris. Ainsi, nous n’avions qu’un seul slot à suivre à la fois, mais en plus, comme rappelé par les organisateurs, nous sommes « wifiless ». Cela permet ainsi une meilleure écoute. Et cela est d’autant plus important, car là aussi c’est une originalité, nous avons des pointures du monde JavaScript qui viennent faire des talks d’une vingtaine de minutes ! Nous pouvons voir un grand ensemble de talks rapidement. Talks qui sont aussi bien techniques que des « philosophies » de vie.

20141117_093410


Je ne pourrai pas énumérer tous les speakers tant il y en a eu (vous pouvez  trouver la liste ici ! ), mais je vais citer certains talks que j’ai accroché (à noter que tous les talks seront accessibles sur la chaîne Youtube de dotJS):

Tout d’abord, la première conférence, animée par James Halliday (le nom de « substack » parlera aux inités), qui pourrait se résumer ainsi: « comment faire des applications robustes fonctionnant même sans réseau ». Il nous a donc amené sur l’utilisation de l’HTML5 CACHE, permettant de faire de l’inverse scaling (allégeant le serveur d’appels ressources inutiles), mais aussi permettant à l’utilisateur un meilleur contrôle de l’application, à savoir la maîtrise de la version du code sur le poste client (autrefois gérée par le serveur, qui n’offrait qu’une seule version de l’application à l’instant T. Maintenant, possible de le gérer via le navigateur). Qui dit offline dit comment gérer des problèmes comme l’authentification et la sécurité, chose résolue en grande partie via l’api HTML5 Crypto (permettant de faire du chiffrage asymétrique).

Justin Meyer (créateur de CanJs) est venu nous parler des projets de développement autour de JavaScript et de la nécessité des checklists avant de commencer tout projet (« mise en place » suite au crash du B52). Il prend un exemple simple: tout chirurgien qui se respecte fait une checklist avant toute intervention pour s’assurer de la conformité des protocoles, des instruments, que le patient soit le bon et que la pathologie est bien comprise. Ceci a permis de réduire les risques opératoires de plus de 50% ! Pourquoi ne ferions-nous pas de même dans le monde informatique et du développement logiciel ? Justin nous propose ainsi sa propre checklist à adapter en fonction de nos besoins. Il va même plus loin en nous apprenant à jauger la pertinence d’un point de la checklist en faisant ce simple calcul:

checklist-equation

 Si la valeur est inférieure à 0, il est plus handicapant que bénéfique. A 0, il est neutre (il ne coûte rien en somme). Au-dessus de 0, il est bénéfique au projet.

 

Je pourrais également citer les talks de Julien LeCompte, Mike McneilPaul O’Shannessy, John-David Dalton qui sont venus nous parler respectivement:

  • De l’avenir de YUI, avec sa version 3 qui devrait sortir en 2015 (allant vers la norme EcmaScript 6, avec la mise en place d’un système d’injection de polyfills, et aussi de l’utilisation de ReactJs au sein de ses composants graphiques)
  • De la création de plugins avec une approche dite « machine state » où nous utilisons des méta-data pour décrire les entrées / sorties et le comportement du plugin (ce qui nous permettra ensuite de l’écrire plus facilement), et cela via le projet qui vient tout juste de sortir (issue du monde Sails.js): Waterline
  • De l’évolution de ReactJs autour des normes EcmaScript 6 et EcmaScript 7
  • De l’évolution de Lodash en proposant une syntaxe à la jQuery (ex: _(arrà.map(…)), mais surtout permettant de faire de la transduction !

Et enfin, un talk qui nous a fait du bien (pas qu’à moi, j’en suis sûr), c’est celui d’Angus Croll (créateur de Flight.js) qui nous a rappelé que nous pouvons écrire du code en respectant les bonnes pratiques et les guidelines. Mais cela n’empêche pas pour autant d’expérimenter et aussi de se faire plaisir :

« Playing is learning ! »

Car comme le dit très justement James Halliday:

« You need a lot of bad code to write good code »

Pour tout ceux que je n’ai pas cités, je m’excuse, mais je tiens à souligner la qualité de vos interventions, et je sais que grâce à vous , j’ai vu et appris beaucoup de choses (merci à Thomas Parisot, Soledad Penadès, et j’en passe …)


A noter que la dotJS, par le biais de ses partenaires, a partagé une récompense de 10 000 dollars pour le projet backend et le projet frontend le plus ambitieux de cette année (vote soumis aux personnes qui sont venus assister aux conférences).

La victoire du côté backend revient au projet Gulp.js qui est un système de build se basant sur l’api streaming de NodeJs. Et la victoire du côté frontend revient au projet Pixi.js de Mat Groves permettant de générer du rendu 2D sur WebGl, avec un fallback sur le Canvas classique.


 

Je finirai mon article en précisant que la dotJS a apporté en plus de cette conférence la première session de la dotCss (qui a eu lieu le vendredi 14 Novembre) et la mise en place de workshops le samedi 15 Novembre (j’aurais aimé assister à ceux autour de PolymerJs avec le très connu Addy Osmani).

20141117_122625

L’équipe de la dotJS ne va pas s’arrêter là, en publiant le site http://www.dotjobs.io/ afin d’aider les geeks du développement informatique à trouver un job, en soutenant http://www.hackerpledge.org/ qui référence les sociétés qui ont une certaine philosophie de vie. Enfin, le futur site « The Dot Post » qui est le blog de la dotJS.

20141117_114034


 

Au fond, cet événement était riche en contenus avec des speakers reconnus et de très haute qualité.

En espérant que la session 2015 soit aussi agréable !

Objet Direct et son Université au Devoxx France 2014

Ces derniers jours s’est déroulée la troisième édition du Devoxx France. Elle a eu lieu comme l’année dernière, au Mariott du mercredi 16 Avril au vendredi 18 Avril.

Beaucoup de monde encore cette année s’est déplacé pour nous parler de sujets aussi divers que variés (évolutions de Java depuis la version 8, maîtriser Git, utiliser la Leap Motion …). Et nous avons eu la chance de pouvoir présenter un sujet en tant qu’Université : « JavaScript as a first language : votre IC prête à la révolution ».

Nous étions trois ingénieurs d’Objet Direct Grenoble à venir présenter cette Université :

  • Julien Roche
  • Frédéric Dubois
  • Frédéric Bouquet

Notre but ? Montrer que JavaScript et Qualité peuvent faire bon ménage. Et montrer que ce qui existe dans le monde Java a un équivalent dans le monde JavaScript.

Pour cela, nous avons commencé par une courte présentation d’outils pour nous, développeurs, tel qu’un bon IDE comme WebStorm ou encore le ChromeDevTools qui permet de comprendre ce qui ne va pas dans nos sites (du debugger au profiling).

Nous avons ensuite enchainé sur la démonstration de notre usine logicielle autour d’une petite application que nous avons entièrement conçue en JavaScript.

 

Pour la partie serveur, nous avons utilisé NodeJs afin de définir un service REST et de faire le lien vers MongoDB. Pour la partie cliente, nous sommes partis sur une architecture basée sur Backbone.Marionette. De plus, nous avons structuré notre projet avec une architecture AMD (basé sur NodeJs pour le serveur, RequireJs pour le client), ce qui permet d’organiser plus efficacement notre projet.

L’idée est ensuite d’utiliser NodeJs et son outillage pour automatiser les traitements d’une usine logicielle Javascript à savoir : gestion des dépendances, compilation (des fichiers LESS par exemple), analyse statique du code (JS, HTML, CSS, etc.), exécution des tests et analyse de la couverture de code, packaging. Comme nous le faisons déjà avec Maven sur nos projets Java.

Nous avons donc utilisé Bower pour la gestion des dépendances et GruntJs pour définir le cycle de vie à notre application.

  

Un accent a été mis sur la partie testing. Nous avons des tests unitaires pour la partie serveur et la partie cliente avec Jasmine et Karma. Nous avons également créé un projet qui réunit les deux projets et qui permet à la fois de lancer l’application en mode production, mais aussi de lancer des tests fonctionnels de bout en bout, et cela via CasperJs.

                 

Enfin, nous avons montré l’intégration de nos projets au sein d’une intégration continue comme Jenkins où nous pouvions voir toutes nos métriques s’afficher.

Si vous le souhaitez, vous pouvez récupérer le code de notre application sur les liens suivants :

Article: Les fondamentaux du Responsive Design

Bonjour,

Je vous fais ce petit billet afin de vous informer de la publication sur le site www.developpez.com d’un article que nous avons écrit sur le responsive design.

Vous pouvez le trouver sur le lien suivant: http://objetdirect.developpez.com/tutoriels/css/responsive-design/

J’espère qu’il vous plaira.

Bon weekend à tous !

Human Talks Grenoble, c’était hier soir !

Hier soir, le 12 février 2013, les Human Talks se sont déroulés au sein des locaux de Col’Inn à Grenoble.

Comme d’habitude, de nombreuses personnes se sont rassemblés pour voir des présentations fortes intéressantes:

  • « Chiffrement symétrique / asymétrique et HTTPS », par Philippe Le Van
  • « NoSql, comment choisir ? », par Rémi Alvado
  • « h-ubu: modulariser votre JavaScript », par Clément Escoffier
  • « Play framework (V1) : simplicité et productivité au service du développement WEB en Java », par Xavier Nopre

Et enfin, il y avait aussi ma présentation: « PhoneGap, ou la programmation Web Mobile hybride à porter de main ».

Vous pouvez consulter les slides de ces présentations sur ce lien et n’oubliez pas: la prochaine session, c’est le mardi 12 mars ! Alors n’hésitez pas à venir et aussi proposer des sujets de talks !

Programmez: deux nouveaux articles au sein du magazine

Bonjour,

Le mois de Février a été riche, car nous avons pu constater la publication de deux articles dans le magazine mensuel « Programmez » qui viennent d’Objet Direct.

Le premier s’intitule « Créer un plugin PhoneGap, un jeu d’enfant« . Il montre que PhoneGap, la solution permettant de créer des applications Web mobile hybride, a été pensé dès le départ pour qu’il puisse gérer des plugins. Autrement dit, que nous puissions nous créer nos propres plugins si nécessaire. Pour le démontrer, l’article montre un exemple où nous voulons envoyer un SMS. Nous faisons alors étape par étape la réalisation du plugin, qui fonctionnera sous Android et sous Windows Phone 7.

Le second s’intitule « CSS3, la nouvelle donne« . Cet article tend à montrer qu’il est temps d’utiliser CSS3 dans nos sites Web, et aussi de remettre en cause la façon dont nous les développons. L’apparition d’Ajax a bouleversé la façon de concevoir nos sites. CSS3 nous amène peu ou prou la même chose.

Si vous avez un magazine Programmez à porter de main, et que vous voulez lire les articles n’hésitez pas !

Bonne journée à tous !

Notre premier plugin PhoneGap sur PhoneGap-Plugins

Bonjour,

Il y a quelques temps, nous avions écris un petit billet afin de signaler la présence sur notre repository Github, nous avions placer un plugin pour PhoneGap-Android afin de pouvoir interagir avec les applications de tweets: https://github.com/ObjetDirect/phonegap-plugins/tree/master/Android/Twitter

 

Désormais, ce plugin est officiellement intégré dans le repository Github de PhoneGap-Plugins (https://github.com/phonegap/phonegap-plugins/tree/master/), qui est un repository référençant les plugins PhoneGap (et gérer par les gens de chez PhoneGap). Vous pourrez le trouver sur le lien suivant: https://github.com/phonegap/phonegap-plugins/tree/master/Android/Twitter

Nouveau plugin Bootstrap: Paginate

Bonjour,

Un petit message pour vous prévenir de la présence d’un nouveau plugin pour Bootstrap sur notre Github: bootstrap-paginate. Il a pour but de vous faciliter la tâche sur l’élément de pagination. Voici un exemple tout simple d’utilisation:

$("#paginate").paginate({
    pages: 5,
    pageChange: function(index) {
        $("table tbody").load("/user/paginate/" + index);
    }
});

Je vous invite à aller voir le lien suivant pour plus de détails sur son utilisation: https://github.com/ObjetDirect/javascript/tree/master/Bootstrap/bootstrap-paginate

En espérant que cela puisse vous être utile

Cordialement

Human Talks Grenoble – la première session

Bonjour,

Mardi soir dernier (à savoir le 13 Novembre 2012) a eu lieu la première session des Huma Talks à Grenoble: http://humantalks.com/cities/grenoble/events/5

Il s’agit d’un regroupement initié par les Human Coders (http://humancoders.com/) dont le but est de faire des présentations d’une dizaine de minutes (technique ou non).

Du coup, j’en profite pour vous donner les slides que j’ai présenter ce soir là (visualisable sur SlideShare):

Cordialement