Archives mensuelles : janvier 2014

Retour sur le sfPot de Lyon du 23 janvier 2014

J’étais en déplacement toute la semaine à Lyon, et il se trouve qu’au même moment se tenait le premier sfPot Lyonnais, organisé par l’AFSY (Organisation Francophone des utilisateurs de SYmfony). Je me suis dit qu’il aurait été dommage de ne pas y assister.

Le format du sfPot est assez sympathique : une à deux conférences durant chacune entre 30 minutes et une heure, suivi d’un pot. C’est alors l’occasion d’échanger de façon informelle avec les participants.

La gestion de l’événement se fait via la site Meetup. Le nombre de places étant limité, il est nécessaire de s’inscrire afin d’être sûr de pouvoir participer.

Ce sfPot se tenait dans les locaux de la société Elao, à Villeurbanne. Les participants pouvaient voter entre cinq propositions de conférences (durant la semaine précédent l’événement) pour n’en retenir que deux.

Les deux conférences programmées étaient :

  • « Symfony2 Security & Websockets : la technique du ticket », présentée par Thomas Jarrand,
  • « Interopérabilité cross-frameworks », présentée par Matthieu Napoli.

Avant le début des conférences, Xavier Gorse a fait une rapide présentation de l’AFSY et du fonctionnement des sfPots, et de l’AFUP.

La première conférence m’a permis de découvrir ce qu’étaient les Websockets (pour faire simple, c’est un protocole de communication bi-directionnel pour les navigateurs et les serveurs web permettant d’établir des connexions persistantes). La présentation était très intéressante, avec un petit exemple sympa et suffisamment explicite pour se rendre compte de ce que l’on peut faire. Sur le serveur web, la sécurité des connexions est assurée par Symfony. Les communications websockets sont assurées par un serveur Node.js. Deux clients se connectent au serveur via un navigateur. Les utilisateurs sont identifiés par Symfony et le serveur Node.js établit la connexion. A partir de ce moment là, les informations qui circulent sur l’une des connexions est partagée sur l’autre. Par exemple, si un élément est déplacé dans l’un des navigateurs, il le sera aussi dans le second. Cela permet par exemple de partager l’affichage entre n utilisateurs.

Retrouvez cette présentation ici.

La seconde conférence traitait de la possibilité d’utiliser Symfony conjointement à n’importe quel autre framework au sein de la même application (il s’agit bien d’utiliser plusieurs frameworks en même temps dans la même application). Le principe est de séparer ce qui est spécifique aux différents frameworks et d’utiliser des conteneurs pour le partage d’informations ou de fonctionnalités. Ces conteneurs seront réutilisables et interopérables. Un exemple d’utilisation serait la migration d’un projet SF1 vers SF2. Ce système permettrait de maintenir le projet en SF1 tout en migrant petit à petit les différentes parties/modules de l’application. Cela permettrait, tout en assurant une migration « en douceur », d’assurer la disponibilité de l’application, en ayant des parties qui fonctionnent avec SF1 et d’autres avec SF2.

Retrouvez cette présentation ici.

Je dois reconnaître que je n’avais pas voté pour ces deux conférences à l’origine. Je ne suis pas un utilisateur régulier de Symfony, je peux même dire que je connais très mal ce framework. Néanmoins, les deux intervenants de ce sfPot ont fait des présentations suffisamment claires et explicites pour qu’il soit possible de suivre facilement sans pour autant être un spécialiste (j’espère néanmoins ne pas avoir dit trop de bêtises ici ;-)).

A la fin des conférences, les participants ont pu se retrouver autour d’un pot et de pizzas. Je n’ai malheureusement pas pu rester, mais l’ambiance était plutôt sympathique et décontractée. 🙂
Nul doute que si j’ai de nouveau l’occasion de participer à un sfPot, je n’hésiterai pas !

SimpleIT publie les statistiques du MOOC HTML5/CSS3

En septembre et octobre 2013, j’ai participé à un MOOC HTML5/CSS3 organisé par OpenClassrooms (SimpleIT est la structure commerciale) et j’ai publié mes impressions sur cette formation dans cet article.

SimpleIT a publié aujourd’hui les statistiques des données recueillies lors du MOOC HTML5/CSS3 OpenClassrooms.

Un certain nombre de ces informations sont intéressantes. Par exemple, nous étions 7564 préinscrits, alors qu’au final, il y a eu 18835 participants. Cela signifie que 11271 personnes ont rejoint le MOOC en cours de route. Les participants venaient d’un grand nombre de pays différents (mais 82% avaient le français comme langue maternelle) et toutes les classes d’âge étaient représentées (de 9 à 83 ans).

Par contre, j’ai été surpris par le taux de suivi des exercices qui était de 52% la première semaine, la plus facile, mais qui est tombé à 16% la dernière semaine, la plus difficile, lorsqu’il a fallu rendre le TP avec une page web complète. Cela tendrait à prouver, selon moi et comme je l’ai mentionné dans mon précédent article sur le sujet, qu’il y avait un trop grand écart entre les exercices des quatre premières semaines (des qcm) et celui de la dernière semaine (la réalisation complète d’une page web à partir d’une maquette).

20% des participants ont obtenu une note suffisante (il fallait avoir au moins 75 sur 125) pour réussir le MOOC et obtenir son badge (un « gadget » apparaissant dans son profil utilisateur sur OpenClassrooms indiquant que l’on a réussi le MOOC ;-)).

OpenClassrooms propose également une certification (payante, mais il suffit de devenir membre premium, pour une somme modique, pour pouvoir la passer) : 186 personnes l’ont obtenue (il n’y a aucune indication concernant le nombre de personnes l’ayant passée, les taux de réussite et d’échec…). C’est à la fois peu (de mon point de vue) et important, dans la mesure où il ne s’agit pas à l’heure actuelle d’une certification reconnue dans le milieu professionnel.

Les données concernées ici sont disponibles en open data. Il est possible de les télécharger au format CSV et de les exploiter. Il semblerait d’ailleurs, que Matthieu Nebra, l’auteur de ce MOOC, soit particulièrement intéressé si vous souhaitez exploiter ces données à des fins statistiques… 🙂 Je vais d’ailleurs les récupérer et voir si je peux en faire quelque-chose. 😉

L’article original sur le blog de SimpleIT est ici.

Retour sur le Forum PHP 2013

Les 21 et 22 novembre derniers, j’ai participé comme tous les ans, au Forum PHP qui s’est tenu pour la première fois cette année au Beffroi de Montrouge (très pratique, aux portes de Paris, à cinquante mètres de la station de métro « Mairie de Montrouge »).

Pour ceux qui ne connaissent pas cet événement, le Forum PHP est organisé une fois par an par l’AFUP, et réunit sur deux jours une trentaine de conférences axées sur PHP mais aussi sur toutes les solutions qui peuvent y être liées de près ou de loin (que ce soit d’un point de vue technique ou organisationnel).

En arrivant le jeudi matin vers 8h30, j’ai découvert comme beaucoup pour la première fois le Beffroi de Montrouge. Le hall est assez vaste, avec un double escalier (et un ascenseur) menant aux étages et au sous-sol. L’accueil et le vestiaire se fait juste après le passage des portes. Dès le début, une queue se forme (rapidement gérée et réduite), laissant présager une fois encore du succès de la manifestation. Heureusement, les locaux sont vastes et aptes à accueillir tous les visiteurs.

Une fois mon badge, mon ticket pour le déjeuner et mes « goodies » récupérés, je pars explorer les lieux histoire de me repérer pour retrouver facilement les conférences qui m’intéressent.  Au sous-sol se trouve l’auditorium, ma plus grande salle mise à disposition pour les conférences. Au premier étage, il y a le bar, avec des boissons chaudes et des viennoiseries à disposition, le stand AFUP et les stands des sponsors : Zend, VA Consulting, Alter Way, SensioLabs, Splio, Theodo… et j’en oublie. C’est l’occasion de rencontrer de façon informelle des acteurs importants de l’écosystème PHP. En face des sponsors, se trouve le grand salon, l’autre salle destinée à recevoir les conférences. L’ambiance est comme d’habitude, plutôt détendue et bon enfant. Ça fait plaisir de revoir des personnes que je ne croise finalement que quelques fois par an sur des animations tournant autour de PHP et/ou du web ou sur des listes de diffusion. En plus, la déco de la « salle des sponsors » est plutôt sympa puisqu’une fresque de Moebius orne le mur.

IMG_0048_salle_sponsors

Je n’ai naturellement pas pu assister à toutes les conférences (toutes ne m’intéressaient pas directement par ailleurs). Je vais donc essayer de vous donner mon avis personnel (et ce n’est rien d’autre que mon avis) sur certaines conférences auxquelles j’ai pu assister. Il ne s’agira pas d’une description précise, juste de quelques impressions. Pour vous faire une idée par vous même, si vous voulez voir (ou revoir) les conférences du Forum, l’AFUP les a toutes enregistrées et beaucoup sont déjà à disposition sur la chaîne YouTube.

 Jeudi 21, 9h – 9h30 : keynote d’ouverture

Olivier Mansour, président de l’AFUP ouvre le Forum PHP 2013. Il est accompagné cette année de François-Xavier Beillon, fondateur de Agence-e, qui a co-réalisé avec l’AFUP une étude sur les salaires de l’écosystème PHP en France. Plus de 1300 personnes ont répondu en 2013 à une enquête concernant leur salaire, leurs conditions de travail, et c’est la synthèse de cette enquête qui nous a été présentée succinctement. L’étude complète était à la disposition de tous sur le stand Agence-e qui la distribuait sur une clé usb (les résultats de cette enquête sont disponibles ici).

Jeudi 21, 09h30 – 10h15 : faisons le tour de PHP 5.5

Julien Pauli (que l’on ne présente plus ;-)) est venu nous présenter les nouveautés de PHP 5.5, sorti en juin 2013 (la version 5.5.6 était sortie au moment de cette conférence, et la version 5.5.7 est sortie le 12 décembre 2013). J’aime beaucoup les conférences de Julien, d’une part parce qu’il connaît parfaitement son sujet, et d’autre part parce qu’il réussit généralement à transmettre son enthousiasme. Je note en particulier parmi les nouveautés l’API de gestion des mots de passe et le mot clé « finally ».

Forum_PHP_2013_Julien_Pauli

Jeudi 21, 10h15 – 11h : pourquoi faire simple quand on peut faire compliqué

Présentation de Frédéric Bouchery basée sur son expérience sur les pratiques de développement, de formation et de gestion au sein des projets informatiques. On y parle des idées reçues, des bonnes et des mauvaises pratiques, des conséquences des choix techniques sur le projet, les développeurs et leurs compétences.

Jeudi 21, 11h – 12h15 : 3 millions d’utilisateurs dans 10 pays, l’histoire technique de BlablaCar

BlablaCar, vous connaissez certainement : c’est le nom de la société qui se « cache » derrière des sites comme covoiturage.fr. Olivier Dolbeau, développeur chez BlablaCar nous explique comment la solution technique, d’abord développée en PHP4 et PHP5, a migré (bientôt totalement) vers Symfony2 en introduisant des composants externes (moteur de recherche…) et pourquoi. Il est très intéressant de voir que des sites à forte audience comme celui de covoiturage.fr par exemple ont démarré un peu comme du bricolage et comment, avec le succès et les contraintes qu’il amène, ils ont dû évoluer vers une industrialisation des développements.

 Jeudi 21, 12h15 – 13h : WordPress, le CMS qui fait tourner 20% du web

 Amaury Balmer, CTO de BeApi, administrateur et co-fondateur de WordPress Francophone, vient nous présenter la dernière version du CMS, ainsi qu’un intéressant retour d’expérience de la part de l’APHP, qui a choisi cette solution pour son site, son Intranet et ses nombreux sites spécialisés. Je connaissais un tout petit peu la dernière version de WordPress pour l’avoir installée parce que je m’y intéressais déjà. C’est cette présentation, montrant la souplesse et la robustesse de ce CMS, ainsi que sa facilité d’utilisation (tout au moins pour commencer), qui m’a convaincu de sauter le pas et de le choisir pour monter ce blog.

Jeudi 21, 14h00 – 14h45 : vis ma vie de sysadmin avec des développeurs PHP

Baptiste Dupain (très sympathique au demeurant pour un sysadmin ;-)) de M6Web, est venu nous présenter la façon dont les montées en charge d’applications PHP sont gérées sur les sites du groupe M6 et quels outils sont utilisés. J’ai beaucoup aimé l’anecdote concernant le faux reportage pour le 1er avril dans un magazine auto de la chaîne décrivant comment il était possible de faire le plein dans une station service en utilisant un code à la pompe permettant de ne pas être débité. La voix-off annonçant à la fin du reportage que le code en question était disponible sur le site de l’émission, le trafic a naturellement explosé et les administrateurs qui n’avaient pas été prévenus, s’en sont arrachés les cheveux. 😀

Forum_PHP_2013_Baptiste_Dupain

 Jeudi 21, 16h – 16h45 (oui, j’ai fait une petite pause ;-)) : en dev exactement comme en prod : créez un environnement de développement devops

Benjamin Grandfond, architecte chez Theodo, nous a présenté un certain nombre d’outils permettant de déployer rapidement un nouvel environnement de développement, similaire à celui que le développeur trouvera en production. Je pense que je vais me pencher plus particulièrement sur Vagrant (outils permettant de créer des machines virtuelles durant le développement de l’application permettant de reproduire l’environnement de production, sans pour autant modifier la configuration de sa machine), qui m’a l’air très efficace.

Vendredi 22, 9h30 – 10h15 : mon environnement de travail a-t-il encore un avenir ?

Frédéric Dewinne (VA Consulting) et Sophie Beaupuis (Zend Technologies) nous ont présenté des solutions pour industrialiser la production de code PHP, ne plus se contenter (et maintenir) des outils internes et utiliser des standards. Le but est de stabiliser les applications, diminuer les coûts et standardiser les pratiques de développement. On y parle des frameworks de développement, de tests unitaires, et de tests de comportements ; de gestion de dépendances et de version du code ; d’automatisation de tests et de déploiement. Les outils du Zend Server sont présentés, ainsi que Jenkins (serveur d’intégration continue), SonarQube (qualité de code) ou Travis CI (tests en mode SAAS). La surveillance de l’application (« monitoring ») une fois déployée est également très importante : New Relic analyse les performances et Zend Server fourni des outils d’investigation des causes de dysfonctionnements. Beaucoup d’informations intéressantes dans cette présentation. Je connaissais déjà un peu Zend Server, et Jenkins et New Relic de nom. Je n’ai pas eu l’occasion de travailler sur une infrastructure au sein de laquelle ils étaient mis en œuvre, mais je ne désespère pas. 🙂

 Vendredi 22, 10h15 – 11h00 : fonctions avancées du driver MySQL natif pour PHP

Présentation intéressante de Serge Frezefond de mysqlnd. J’y ai appris pas mal de choses sur le fonctionnement de la couche d’accès à la base de données, mais je reconnais ne pas être forcément assez pointu dans ce domaine pour en avoir retenu beaucoup. Le mieux je pense est d’aller voir ou revoir la présentation.

 Vendredi 22, 11h30 – 12h15 : ne cherchez plus, c’est ElasticSearch qu’il vous faut

Gérald Croes et Julien Salleyron nous ont fait non une présentation, mais un véritable show ! Il était évident qu’il était parfaitement préparé et la complicité qu’ils partageaient était évidente. Je ne peux que vous conseiller d’aller voir la vidéo, c’était un grand moment. Ils nous ont présenté ElasticSearch, un moteur de recherche open source, écrit en Java, particulièrement efficace et simple à mettre en œuvre, interrogeable via une API REST. La démonstration de l’indexation de Wikipedia était particulièrement impressionnante ! J’espère avoir l’occasion de bientôt pouvoir approfondir le sujet.

Vendredi 22, your PHP can fly

Intéressante et amusante démonstration des possibilités de PHP par Baptiste Adrien. Ce jeune diplômé, comme il l’a lui même plusieurs fois rappelé, a démontré la possibilité de piloter via PHP un AR Drone de Parrot, même si il a souligné qu’il était plus efficace d’utiliser Javascript pour le faire. Quelle utilité me direz-vous ? Aucune bien sûr ! Et c’est pour cela que cette démonstration était rigoureusement indispensable ! Le drone est piloté via le réseau wifi en utilisant les fonctions natives « stream » de PHP (socket, tcp, udp).

Forum_PHP_2013_Baptiste_Adrien

J’ai tenté de filmer quelques moments de cette démonstration, mais n’étant pas équipé pour cela, ces deux extraits ne sont pas de bonne qualité. Ça vous donnera néanmoins une petite idée de ce que l’on a pu y voir. 🙂

Un AR Drone piloté par PHP !

L’AR Drone fait un « flip » !

Je termine le Forum comme d’habitude, fatigué, mais heureux d’avoir pu y participer. J’ai assisté à des conférences intéressantes, retrouvé des connaissances, découvert un certain nombre de produits qui ont attiré mon attention et que je pourrais être amené à mettre en œuvre dans un avenir plus ou moins proche. En plus cette année, je vais pouvoir revoir certaines conférences, et surtout voir celles que j’ai raté mais auxquelles j’aurais aimé pouvoir assister. Merci l’AFUP. 😉

Vivement l’année prochaine, mais en attendant, pour ceux qui le peuvent, n’hésitez pas à vous rendre au PHP Tour 2014, qui aura lieu à Lyon, les 23 et 24 juin prochains (l’appel à conférenciers est ouvert).