points de vue - Mot-clé - Conférenceles déambulations d'un codeur2023-06-18T04:35:57+02:00Miguel Moquillonurn:md5:2d53372d0fa8f28ff50e71462648e0b8DotclearLe SnowCamp 2016urn:md5:9ccdf1470711648ff3729adb845789e42016-01-26T20:38:00+01:002017-02-24T10:23:06+01:00Miguel MoquillonRevueConférenceSnowCamp<figure style="float: left;"><img alt="Sticker_SnowCamp_2016_-_CommitStrip.png" class="media" src="https://www.moquillon.fr/public/.Sticker_SnowCamp_2016_-_CommitStrip_s.png" /></figure>
<p>Je vous propose un petit compte rendu du <a href="http://snowcamp.io/2016/fr/" hreflang="fr" title="Site Web du SnowCamp 2016">SnowCamp 2016</a> qui s’est déroulé du 20 au 23 janvier à Grenoble et ceci en toute … subjectivité étant un des organisateurs de cet événement. Mais d’abord, qu’est-ce que le SnowCamp ? C’est une manifestation faite par les codeurs à destination des codeurs et qui profite du pôle technologique et d’innovation qu’est Grenoble pour ouvrir ses portes aux thésards et aux chercheurs afin qu’ils nous fassent profiter de leur travaux.</p> <p>Avant de vous présenter ce compte-rendu, je vous propose de raconter l’histoire du SnowCamp.</p>
<p>Tout a commencé en 2011 lorsque Emmanuel Hugonnet et moi même décidâmes d’organiser, dans le cadre de <a href="http://www.alpesjug.org" hreflang="fr" title="Site Web de l'Alpes JUG">l’Alpes JUG</a>, une association que l’on a formé ensemble en 2010 avec Bruno Vernay, un week-end ski et discussions techniques avec les membres de l’association et les speakers qui sont passés aux conférences mensuelles de l’association. Ce fut, de façon informelle et en petit comité, le premier SnowCamp ; une rencontre entre codeurs et geeks.</p>
<figure style="margin: 0 auto; display: block;"><img alt="5586139997_1f8d136667_z.jpg" class="media" src="https://www.moquillon.fr/public/.5586139997_1f8d136667_z_m.jpg" /></figure>
<figure style="margin: 0 auto; display: block;"><img alt="5586632170_ea18acceba_z.jpg" class="media" src="https://www.moquillon.fr/public/.5586632170_ea18acceba_z_m.jpg" /></figure>
<p>Nous voulûmes réitérer cet événement l’année suivante mais, par manque de participants, il ne put se faire et depuis resta en standby. De temps à autres, on se disait qu’il serait bien de le relancer mais sous forme de conférences.</p>
<p>Ce fut en 2015, suite à sa rencontre avec Cédric Tran-Xuan, au stand de Streamdata.io à Devoxx France, qu’Emmanuel sentit qu’il y avait une opportunité de relancer le SnowCamp et ceci sous forme de conférences à Grenoble. Après avoir prospecté d’éventuels sponsors intéressés et passé bien 4 mois à trouver un lieu pour héberger la manifestation (de mai à septembre), il lança officiellement la machine. Nous fûmes 14 à se rassembler autour de lui et nous mîrent 3 mois intenses à préparer le SnowCamp 2016 pour janvier, avec les vacances de Noël entre temps.</p>
<p>Le SnowCamp 2016 commença le 20 janvier par une journée d’Université au <a href="http://www.congres-wtcgrenoble.com/" hreflang="fr" title="Site Web du WTC de Grenoble">World Trace Center de Grenoble</a> au cours de laquelle quatres formations ont été proposées :</p>
<ul>
<li><em>Apprenez Apache Cassandra</em> avec Duy-Hai Doan</li>
<li><em>Démarrez avec OpenShift !</em> avec Marek Jelen</li>
<li><em>Utilisation d’OpenStack</em> avec Sylvain Bauza</li>
<li>et <em>A la découverte d’ElasticSearch et de Kibana</em> avec David Pilato</li>
</ul>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016_-_WTC.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016_-_WTC_m.jpg" /></figure>
<p>Les deux jours suivants ont été consacrés aux conférences et aux workshops qui ont eu lieu à <a href="http://ensimag.grenoble-inp.fr/" hreflang="fr" title="Le site Web de l'ENSIMAG">l’ENSIMAG</a>. Une première difficulté a été aux participants de trouver le lieu exacte. En effet, Google Maps situe l’ENSIMAG à son premier emplacement, 41 rue des Mathématiques. Or, le SnowCamp a lieu à anciennement l’ENSE3 maintenant appartennant à l’ENSIMAG. Nous avons donc du coller en urgence des affiches aux endroits stratégiques pour guider les gens à la sortie des deux arrêts de tramway qui encadrent l’ENSIMAG.</p>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016_-_ENSE3.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016_-_ENSE3_m.jpg" /></figure>
<p>L’autre surprise a été que le hall d’entrée n’était pas du tout chauffé et avec les portes qui s’ouvraient et se refermaient à chaque passage nous avions rapidement froid ; le café et le thé chaud n’étaient pas de trop. Mis à part ces détails, les deux jours se sont bien déroulés et les participants, ainsi que les speakers ont été assez enthousiastes et contents de la manifestation. Nous avions estimé à environ 200 participants et nous en avons acceuillis 195. Ce nombre restreint a permi au SnowCamp de garder une ambiance bon enfant qui a plutôt bien plu.</p>
<p>La keynote d’ouverture des conférences, le jeudi, était intéressante et a su flatter l’égo des codeurs. Animée par Sacha Labourey, il nous rappela que le logiciel est devenu une part essentielle dans l’économie d’aujourd’hui et que son influence n’est que grandissante, s’introduisant dans des domaines jusqu’ici inattendus. Par ce fait, notre rôle, en tant que codeur, devient lui aussi de plus en plus important mais qu’en retour nous avons aussi des responsabilités.</p>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016_-_keynote_de_Sacha_Labourey.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016_-_keynote_de_Sacha_Labourey_m.jpg" /></figure>
<p>La keynote de vendredi a été présentée par Thomas Guenoux de <a href="http://www.commitstrip.com/fr/?" hreflang="fr" title="Site Web de CommitStrip">CommitStrip</a> qui s’est amusé à raconter, avec plein d’humour et d’anecdotes croustillantes, l’enfance du codeur d’aujourd’hui. Nous nous sommes évidemment reconnu dans bon nombre d’aspects.</p>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016_-_keynote_de_CommitStrip.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016_-_keynote_de_CommitStrip_m.jpg" /></figure>
<p>Les sujets adressés par les talks durant ces deux jours étaient assez variés puisqu’ils couvraient aussi bien le devops, le développement logiciel, le big data que l’IOT. En tant qu’organisateur, je n’ai pu assister qu’à quelques un, parmi lesquels :</p>
<ul>
<li><em>Entrez dans l’émeute avec Riot.js</em>, animé par Cédric Tran-Xuan. Ce fut une présentation du framework javascript orienté composant Riot comme alternative légère et non moins complète à Angular 1 et 2 et à Polymer.</li>
<li><em>Développez dans le futur dès maintenant</em>, animé par Mathieu Parisot. Cette présentation expliqua comment coder avec les prochaines techniques du Web tout en gardant la compatibilité avec les navigateurs Web par l’utilisation d’outils comme WebPack, Babel et PostCSS.</li>
<li><em>Sécuriser en deux deux ses applications back et front avec keycloack</em>, animé par Sébastien Blanc. Ce fut une présentation sur l’utilisation de KeyClock comme service d’authentification et d’autorisation aussi bien pour le front (l’IHM Web) que le back-end (le serveur, le métier).</li>
<li><em>Designing a REST micro-service using Apache Camel</em>, animé par Charles Mouillard. Cette présentation montra la force d’Apache Camel dans la mise en oeuvre d’une architecture micro-services.</li>
<li><em>Learn Java to become polyglot and Display Everywhere!</em> animé par Jaroslav Tulach. Ce fut à mes yeux la présentation la plus spéctaculaire. Jaroslav nous présenta un projet sur lequel il travaille chez Oracle : une nouvelle VM Graal et son API Truffle qui permet d’implémenter n’importe quel language (Ruby, Java, Javascript, …) et de le compiler nativement à l’exécution ; le code n’est plus compilé en code intermédiaire (le bytecode) mais en AST directement qui est alors transformé et optimisé par la VM jusqu’à le compiler en code machine !</li>
</ul>
<p>Pour parachever le SnowCamp 2016, le samedi 23 janvier a été consacré à une sortie ski à Chamrousse. Tout le monde y était invité mais seulement les speakers, pour des raisons de budget, ont eu leur forfait payé par le SnowCamp (l’Alpes JUG). Nous étions 15 à arpenter les pistes de ski. La neige était plutôt dure du fait du vent et du manque d’enneigement les jours précédents mais le temps était ensoleillé et nous avons finalement passé un bon moment.</p>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016-sortie_ski.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016-sortie_ski_m.jpg" /></figure>
<p>Je voudrai ici dire un grand merci aux sponsors qui ont en grande partie financé le SnowCamp, mais aussi aux partenaires sans qui cette événement n’aurait pu être ce qu’il a été : <a href="http://www.alpesjug.org/" hreflang="fr" title="Le site Web de l'Alpes JUG">l’Alpes JUG</a>, le <a href="http://clubagilerhonealpes.org/" hreflang="fr" title="Le site Web du CARA">CARA</a>, <a href="http://www.commitstrip.com/fr/?" hreflang="fr" title="Site Web de CommitStrip">CommitStrip</a>, l’<a href="http://ensimag.grenoble-inp.fr/" hreflang="fr" title="Le site Web de l'ENISMAG">ENSIMAG</a>, <a href="http://www.oxiane.com/" hreflang="fr" title="Site Web d'Oxiane">Oxiane</a>, <a href="https://www.silverpeas.org" hreflang="en" title="Site Web de Silverpeas">Silverpeas</a>, <a href="http://focusdigital.fr/" hreflang="fr" title="Le site Web de Focus Digital">Focus Digital</a>, <a href="http://www.objectif-libre.com/fr/" hreflang="fr" title="Site Web d'Objectif Libre">Objectif Libre</a> et Saloon qui ont offert leur service pour le bon déroulement du SnowCamp ou permi aux organisateurs de consacrer leur temps de travail à l’organisation de celui-ci.</p>
<p>Au prochain SnowCamp !</p>
<figure style="margin: 0 auto; display: block;"><img alt="snowcamp2016_-_The_end.jpg" class="media" src="https://www.moquillon.fr/public/.snowcamp2016_-_The_end_m.jpg" /></figure>
<p> </p>Devoxx France cru 2014urn:md5:eb6012f752c11a63235f61104f218f062014-04-22T23:20:00+02:002015-05-02T20:36:52+02:00Miguel MoquillonRevueConférenceDevoxxJava<p><a href="http://www.devoxx.fr/" hreflang="fr" title="Devoxx France">Le Devoxx France</a> est, à l’image de son parent le <a href="http://www.devoxx.com/" hreflang="en" title="Devoxx">Devoxx</a>, une conférence à caractère technologique qui s’étale sur trois jours. Bien que axé sur l’écosystème Java, on y trouve aussi des tracks sur d’autres langages (comme Erlang ou Go), et sur d’autres technologies (programmation système sur Raspberry Pi ou sur Arduino).</p>
<p>C’est la troisième année et le cru 2014 a été, à mes yeux, excellents. Ce que j’aime dans cette conférence est son caractère technique ; les tracks sont animés par les programmeurs pour les programmeurs. Foin donc de toute propagande sur tel outil, tel framework ou tel autre produit. Ici, l’accent est mis sur la présentation avant tout technique, le plus souvent illustrée par une démonstration qui, je l’avoue, me parle beaucoup plus qu’une suite ininterrompue de slides et de blabla.</p> <p>Cette année, le Devoxx a eu lieu, comme les années précédentes, à l’Hôtel Marriott Rives Gauche à Paris du mercredi 16 au vendredi 18 avril. Or, le lieu est peu spacieux et, effectivement, il a fallu jouer des coudes pour se glisser entre les gens et s’infiltrer dans une salle avant qu’elle soit comble. Le pire a été tout de même le déjeuner où il a fallu se serrer comme des sardines, voir faire preuve d’astuces, pour arriver à choper des crudités et des sandwichs. Mais, ceci ne sera sans doute qu’un mauvais souvenir car l’annonce a été faite que le prochain Devoxx France se fera … au Palais des Congrès à Paris du 8 au 10 avril 2015. Un espace donc bien plus conséquent, à l’image, je pense, du succès du Devoxx France et des ambitions de ses <a href="http://www.devoxx.fr/lequipe/" hreflang="fr" title="Les organisateurs du Devoxx France">organisateurs</a>.</p>
<p>Parmi les keynotes, deux m’ont le plus interpellés. D’abord celle de Gilles Babinet et de Kwam Yamgnane dans laquelle ils rappellent que notre société devient depuis quelques années une société de l’information, ouvrant ainsi une nouvelle ère qu’ils nomment l’Ère Numérique. Dans cette nouvelle société, le logiciel est partout et devient un élément marquant, voir différenciateur ; le développeur, pardon le programmeur (un clin d’oeil à J. de Morlhon), en est donc un acteur important. Malheureusement, la France ne semble pas encore préparée à entrer dans cette nouvelle ère, les auteurs prenant exemple des politiques actuelles, du rôle des programmeurs dans les entreprises françaises, de la gouvernance de celles-ci, mais aussi de l’enseignement à l’éducation nationale, fondés tous sur des modes de pensée et d’organisation de type pyramidales, issus de la fin du 19e et première moitié du 20e siècle. Ainsi, par exemple, alors que l’information est accessible partout et en tout lieu, au lieu d’apprendre aux enfants de l’exploiter, on fonde encore leur enseignement, et donc les évaluations, sur la rareté de celle-ci. De même que la société en devenir se fonde sur l’esprit de partage et de collaboration, l’enseignement force l’individualisation du travail de chacun. La seconde keynote est celle surprise de Tariq Krim, auteur de la controversée liste d’une centaine de développeurs marquants. Pour lui, et en accord avec le discours de Gilles Babinet et de Kwam Yamgnane, les programmeurs sont malheureusement peu considérés dans notre société et les entreprises et donc, indirectement, en est de même de l’intérêt et du rôle pourtant grandissant des logiciels dans la construction de la société de demain. Il reprend les paroles de Alan Kay, le père de la programmation orientée-objet : <q>The best way to predict the future is to invent it</q> et il nous exhorte que c’est à nous, aujourd’hui, d’inventer, de créer ce future. Pour ce faire, il nous propose son initiative “<a href="http://www.codeforfrance.org/" hreflang="fr" title="Code For France">Code For France</a>”.</p>
<p>Passons maintenant aux tracks proposés. Cette année, j’ai mis l’accent sur JEE, le mal aimé, dont les tracks ont été animés par les excellents <a href="http://blog.alexis-hassler.com/" hreflang="fr" title="Le blog d'Alexis Hassler">Alexis Hassler</a> et <a href="http://next-presso.com/" hreflang="en" title="Le blog d'Antoine Sabot-Durand">Antoine Sabot-Durand</a>. En effet, je travaille sur un portail social et collaboratif d’entreprise, <a href="http://www.silverpeas.org" hreflang="en" title="The Open-Source Social and Collaborative Platform">Silverpeas</a>, qui a été construit dès le début, en 2000, sur une base J2EE. Or, depuis quelques années, avec l’arrivée de JEE 6, nous avons commencé à migrer notre plate-forme vers cette dernière mouture. Si j’ai suivi, d’un œil distant je l’avoue, les évolutions apportées par JEE 6 puis, et surtout, par JEE 7, j’étais encore resté sur mes connaissances des spécifications J2EE dans lesquelles le conteneur EJB était bien distinct du conteneur Web non seulement du point de vue de leur compartimentation par une hiérarchie différente de class-loaders, du cycle de vie des objets différent, mais aussi par l’outillage technique accessible. Ainsi, la persistance (à l’époque BMP, puis CMP), JCA, JMS, … étaient tous des services à disposition du conteneur EJB, celui Web étant plutôt son cousin pauvre. J’ai appris, par les différents tracks sur le sujet, qu’en fait, les conteneurs Web et EJB ne se résument finalement plus qu’à la gestion du cycle de vie des objets. Un autre conteneur intervient en transverse : le conteneur CDI, faisant que l’ensemble des services JEE reposent dorénavant sur celui-ci (ce n’est pas complètement vrai pour certains services comme JCA) . Il est donc possible, avec JEE, de profiter, du côté Web, de la persistance et d’autres services jusqu’alors destiné aux EJB et, avec JEE 7, sans avoir à utiliser pour ceci d’EJB ! Il est donc possible d’avoir toute son application dans une seule archive … war.</p>
<p>Ceci à part, j’ai assisté aussi à des tracks d’intérêts d’ordre plus personnel. A côté de celles sur <a href="https://angularjs.org/" hreflang="en" title="Le site d'AngularJS">AngularJS</a> ou sur <a href="http://nodejs.org/" hreflang="en" title="Le site de NodeJS">NodeJS</a>, qui ont le vent en poupe, j’ai aussi assisté à la présentation des <em>streams</em> dans Java 8. Si j’étais dubitatif quant à ceux-ci comme choix d’implémentation des constructions fonctionnelles basiques, j’ai fini par mieux comprendre, et aussi par apprécier, leur intérêt. Et notamment leur préoccupation des problématiques du traitement parallèle (qui est distinct de celui concurrentiel), que l’on ressent jusqu’au choix du nom de la fonction <em>reduce</em>, du pattern Map-Reduce, en lieu et place de <em>foldr</em>, plus classique dans les langages de programmation fonctionnels. Toutefois, sur ce sujet, mon sentiment, qui est avant tout subjectif, est que les <em>streams</em> dans Java 8 constituent juste un premier jet pour répondre à un besoin émergent mais ne sauraient répondre aux vraies attentes des domaines d’application de la programmation parallèle comme le Big Data par exemple, le buzz word pour désigner le data mining à plus grande échelle. Quant à leur usage, ceci va demander une certaine révolution culturelle auprès des programmeurs Java, et ceci d’autant plus que les <em>streams</em> font appel à la programmation fonctionnelle, donc à une approche d’esprit et de conception différente de celle habituelle dans Java. On risque donc d’observer des ratés, voir des imbroglios dans le code. Si Scala est devenu, à mes yeux, le C++ de l’écosystème Java de par sa complexité technique contrebalançant son efficacité, ce dernier garde l’avantage d’être cohérent dans son approche de programmation plutôt orientée fonctionnelle (même s’il est possible de faire de la programmation impérative avec). Avec mon expérience des langages de programmation fonctionnelle (Lisp, Haskell et accessoirement Scala), j’ai hâte de tâter des <em>streams</em> dans un contexte de programmation naturellement dirigé par une approche impérative.</p>
<p>Les autres tracks qui m’ont intéressés, mais dont je n’ai pu assister pour la majorité, sont ceux sur <a href="https://www.docker.io" hreflang="en" title="Le site de Docker">Docker</a>. Ce dernier est une solution de compartimentation de l’exécution de programmes vis à vis du système et des autres processus, destinée à la virtualisation, et qui se veut transversal des techniques de compartimentation sous-jacent aux différents systèmes : les cgroup sous Linux, les jails sous les BSD, … La difficulté sera de porter Docker sur des OS comme MacOS X et Windows qui ne proposent pas d’outils de ce genre mais je ne suis pas sûr que ce soit leur priorité, voir même leur axe de développement, étant donné que la majorité des serveurs, virtualisés ou non, tournent sur du GNU/Linux. L’intérêt de Docker est de pouvoir concevoir un conteneur avec un environnement configuré constitué de programmes donnés que l’on puisse installer et enlever dans un environnement virtualisé quel qu’il soit, voir même sur son propre poste de développement (s’il tourne sous une distribution GNU/Linux). Or ceci m’interpelle car il est fréquent, dans mon usage aussi bien professionnel que personnel, de nécessiter différents environnements d’une même application (avec ses dépendances comme un SGBDR ou un NoSQL par exemple). Docker est donc mon prochain axe d’investigation (enfin, si j’arrive à glaner suffisamment de temps).</p>