PHP in 2012
Espace Adenauer 05/06/2012 09:30-10:15 - Niveau : N/A - FrançaisA look at the state of PHP in 2012. Where are we, how did we get here and how does PHP fit into the current infrastructure ecosystem of the Web? Plus, a quick tour of what is new and cool in PHP 5.4.
Annotating with Annotations
Espace Adenauer 05/06/2012 10:15-11:00 - Niveau : N/A - FrançaisWhat exactly are annotations? How can they change the way you code and make life simpler? We will dive into the history of annotations in and out of PHP and get to know the libraries that use them today and how we can use the Doctrine Common Annotation package to implement them in our code.
Tirer parti de Postgresql en PHP avec Pomm
Salon Honorat 05/06/2012 10:15-11:00 - Niveau : N/A - FrançaisPostgresql est le système de gestion de bases de données relationnelles libre le plus avancé. Cette conférence sera dans un premier temps l'occasion de faire un état des lieux des fonctionnalités offertes aux développeurs web par ce sgbd (tableaux, requêtes objets, fonctions fenêtrées, types et opérateurs etc.) Dans un deuxième temps, sera abordé comment bénéficier de ces fonctionnalités très puissantes tout en utilisant un framework PHP orienté objet à l'aide de l'hydrateur Pomm.
Coup de pied dans la LAMP
Espace Adenauer 05/06/2012 11:15-12:00 - Niveau : N/A - FrançaisLa stack LAMP, largement éprouvée, est souvent utilisée par défaut sur les projets Web. Après 6 ans sans nouvelle version majeure, les alternatives à Apache se sont largement développées, et apportent des performances accrues tout en gardant une stabilité équivalente. Le monde de MySQL a lui aussi beaucoup évolué et il est donc aujourd’hui temps de reconsidérer notre stack favorite. Qu’apporte Apache 2.4 ? Nginx ne serait-il pas plus approprié à votre besoin ? MariaDB est-il plus performant que MySQL ? Quelle différence entre php-fpm et php_mod ? En partant d’un environnement LAMP classique, nous vous montrerons comment remplacer ou simplement configurer les différentes composantes d’une architecture web afin d’améliorer les performances de votre application sans même toucher au code source. Mots clés : Apache, Nginx, mariaDB, performance, serveur, poney :)
Anatomie du test
Salon Honorat 05/06/2012 11:15-12:00 - Niveau : N/A - FrançaisLe test, qu'il soit unitaire ou fonctionnel, est à la mode dans le monde du développement logiciel, suite entre autre à la mise en œuvre croissante des méthodes agiles et notamment de l'intégration continue ou des méthodes de développement telles que le TDD, le BDD ou la programmation par contrat. Récemment, ce phénomène a encore été amplifié au sein de la communauté PHP par l'apparition aux côtés de l'incontournable PHPUnit d'outils plus originaux tels que Behat, Praspel ou atoum qui permettent au développeur de rédiger des tests plus simplement. Pourtant, nous constatons tous les jours que le test conserve une grande part de mystère pour la plupart des développeurs, Bien souvent, ces derniers ne savent pas quoi tester, et encore moins comment écrire un test efficace ou mettre en place une politique de test pertinente. Certains s'interrogent par exemple sur la pertinence de leurs tests, se demandent s'il faut absolument tout tester, d'autres s'il est possible de tester la création d'un fichier, voir même s'il est intéressant de le faire, tandis que d'autres se demandent où se situe la frontière entre le test unitaire et le test fonctionnel ou s'il est nécessaire de tester toutes les méthodes d'une classe, alors que d'autres encore ne savent tout simplement pas par où commencer. Durant cette conférence, nous allons tenter, à l'aide de nos expériences respectives de créateur de framework de tests et de doctorat en informatique spécialisé dans le test, de répondre aux questions récurrentes que se pose une personne confrontée à la mise en place d'une politique de qualité logicielle en général et à l'écriture d'un test logiciel en particulier. À l'issue de cette foire aux questions didactique et interactive, vous devriez être capable d'aborder le test, indépendamment de sa nature, de manière plus sereine et efficace et produire ainsi un logiciel de la qualité que vous désirez.
Mes développeurs parlent chinois !
Espace Adenauer 05/06/2012 12:00-12:45 - Niveau : N/A - FrançaisQuand on partage la passion de PHP, le fossé culturel et la barrière de 3 langues ne font peur à personne. Comment appliquer des méthodes de qualité à des développeurs 2 continents plus loin ? Et apprendre de leur approche a aller plus loin ? Dans ce conte chinois, nous aborderons les moyens de mieux se comprendre, et les outils et méthodes pour mettre la qualité au premier plan.
Monitoring applicatif : Pourquoi et comment ?
Salon Honorat 05/06/2012 12:00-12:45 - Niveau : N/A - FrançaisVous êtes développeur, chef de projet technique ou même responsable et vous souhaitez avoir de la visibilité sur le fonctionnement de vos applicatifs, ou sur la plateforme sur laquelle ils sont hébérgés ? Nous étudierons comment, grace à des outils simples (StatD / Graphite / Log BDD) et pas mal de bon sens, mettre en place un monitoring ultra complet, vous permettant de retrouver la vue sur vos projets, grace à ce que nous avons mis en place chez M6Web pour mieux anticiper la charge, detecter la root cause en cas de problème grace à de l'alerting précis, et connaitre l'état de chacun de nos services ...
Anatomie, fonctionnement et performances de PHP
Espace Adenauer 05/06/2012 14:00-14:45 - Niveau : N/A - FrançaisCette conférence a pour but de montrer comment PHP fonctionne de l'intérieur, pour mieux l'appréhender et le maîtriser de l'extérieur. Nous allons voyager au coeur de PHP et le décomposer en différentes parties. L'axe de reflection sera la performance du langage, et nous allons concrètement analyser certaines parties pour expliquer certains faits : les quotes, les tableaux, les objets et les fonctions, le masquage d'erreurs, la sérialisation et encore bien d'autres choses. A bas les mythes et trolls ridicules que nous connaissons au sujet de notre langage fétiche !
Haute disponibilité au service du public
Salon Honorat 05/06/2012 14:00-14:45 - Niveau : N/A - FrançaisL’évolution des rythmes de vie et des technologies de l’information changent les habitudes d’accès aux services. Le public veut pouvoir retirer un billet de train, déposer un chèque sur son compte en banque, affranchir un colis ou obtenir une prestation en dehors des horaires d’ouverture des bureaux ou des guichets. Les solutions « libre service » répondent à cette attente et sont de plus en plus utilisés dans de nombreux secteurs comme les transports aérien et ferroviaire (SNCF, RATP …), le terrestre (autolib’) et les services publics (La Poste, CNAM, CNAF … ).
Ces dispositifs qui dans beaucoup d’endroits compensent l’absence de présence humaine se doivent d’être disponibles et fonctionnels à tout moment. Il est donc obligatoire de pouvoir superviser en temps-réel ces parcs d’automates pour détecter, voire anticiper, d’éventuels problèmes afin d’intervenir au plus vite et assurer la continuité de service.
Stéphane Baixas, Software Engineering Director du projet Autolib', et Christophe Villeneuve, consultant PHP pour Alter Way, montreront une approche originale de gestion d'un parc informatique, réalisée en PHP, permettant d’assurer le Maintien en Condition Opérationnelle (MCO) des machines.
La présentation abordera les nombreuses contraintes de la maintenance pro-active, mais aussi les différents problèmes liés à la gestion des incidents, pour proposer une haute disponibilité des services, tout en gardant une capacité d'analyse pertinente des résultats.
Magic Behind The Numbers – Software Metrics In Practice
Espace Adenauer 05/06/2012 14:45-15:30 - Niveau : N/A - FrançaisWe use static code analysis tools more often these days that create great reports and funky graphs. But do we understand what it all means? Software metrics tends to be magic numbers for a lot of people, but they don’t really have to be. I will introduce you to a few basic, the most popular software metrics and tools. I will explain to you what they mean and how you can use them to produce better software.
Gestion des dépendances dans un projet PHP
Salon Honorat 05/06/2012 14:45-15:30 - Niveau : N/A - FrançaisQue ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Modélisation des menaces d'une application web : étude de cas
Espace Adenauer 05/06/2012 15:45-16:30 - Niveau : N/A - FrançaisVous êtes sur le point de signer un contrat avec un éditeur d'applications web. Tous les éléments du cahier des charges ont été pris en compte dans l'offre, même la sécurité : le contrôle d'accès, la disponibilité, etc. et c'est tout! Où est le reste ? Pirates informatiques? Fraudeurs ? Revendeurs d'informations ? Concurrence ? Lois ? Qui s'en occupe ? Y a-t-on pensé ?
Lors de cette séance, nous simulerons l'intervention d'un spécialiste en modélisation de menaces (threat modeling) au tout début d'un projet de développement d'application web. Son rôle premier sera de qualifier la nature du système, d'identifier et recenser les menaces spécifiques auxquelles il sera exposé dès sa mise en production, qu'elles soient techniques et/ou fonctionnelles, puis de formuler les recommandations adéquates que le client pourra remettre à ses architectes et développeurs pour la suite du projet.
Lightning / flash talks
Salon Honorat 05/06/2012 15:45-16:30 - Niveau : N/A - Français
- Guillaume Plessis pour "hiphop PHP"
- Sébastien Lucas pour "entreprendre dans l'univers PHP"
- Damien Seguy pour "les outils de qualité"
- Fabrice Bernhard pour "refonte agile d'existant PHP"
- Christophe Villeneuve pour "Sécuriser votre mot de passe !"
- Amaury Bouchard pour "Organisation personnelle : GTD et matrice d'Eisenhower"
fonctions avancés du driver MySQL natif pour PHP
Espace Adenauer 05/06/2012 16:30-17:15 - Niveau : N/A - FrançaisMySQL dispose maintenant d'un driver PHP natif sous licence PHP. Ce nouveau driver sera le driver par défaut à partir de PHP 5.4 Il ne modifie pas les pratiques de développement habituelles (API mysqli, PDO ...).
Nous passerons en revue les fonctions avancées de ce driver - utilisation d'un cache coté client - utilisation de requêtes asynchrones - connexions persistantes - load balancing coté client - failover client - sharding. Ce driver est une avancée importante pour le couple MySQL / PHP.
Comment Phing est devenu mon meilleur ami
Salon Honorat 05/06/2012 16:30-17:15 - Niveau : N/A - Français“Ce que vous n’aimez pas faire, faites le souvent” est une citation bien connue du monde agile. Cette conférence à pour but de prôner une variante : “Ce que vous n’aimez pas faire, demandez à quelqu’un d’autre de le faire.... Phing est ce quelqu’un d’autre”. Combien de fois avez vous du ralentir votre travail pour de simples tâches, pourtant rébarbatives ? faire un zip de la dernière version de vos sources, livrer votre application en production, générer la documentation d’API, partager votre travail sur un serveur de recette, lancer les tests avant de commiter, vider les caches applicatifs, … et pourquoi pas combiner le tout. Pire, combien de fois vos collègues ou vous même vous êtes vous posé la question de comment, sur un projet donné, réaliser ces bêtes tâches sans lire la documentation des outils sous-jacent utilisés ? Cette présentation vous propose d’apprendre à demander à Phing ce que vous n’aimez pas faire.
Catching Opportunities with Open Source
Espace Adenauer 06/06/2012 09:00-09:45 - Niveau : N/A - FrançaisNowadays almost every developer is using from Open Source Software in some way, however just few are actively involved. Releasing Open Source seems to be affordable only to students and others who seem to have too much time on their hands. You can not possibly be deeply involved. Or can you? In this session you will learn how Open Source engagement can be valuable for you and your job and how your employer can greatly benefit as well. See how embracing the Open Source philosophy can increase your knowledge and reputation, how it can help you to save your company time and money, how it can attract new employees as well as get you that exciting job. ..and of course: how Open Source will make you love what you're doing even more.
Varnish pour le développeur PHP
Salon Honorat 06/06/2012 09:00-09:45 - Niveau : N/A - FrançaisVarnish devient le cache HTTP utilisé de facto pour les sites ayant besoin d'améliorer les performances. Le problème c'est que Varnish se comporte comme une boite noire auto-magique et certains développeurs ont du mal à utiliser Varnish comme il le souhaiterait. Le but de cette conférence est de faire un rapide tour d'horizon de Varnish puis de plonger dans une liste de best practices au niveau de la configuration du produit afin d'en tirer meilleur parti.
dev et admin sys : une cohabitation simplifiée
Espace Adenauer 06/06/2012 09:45-10:30 - Niveau : N/A - FrançaisLe Devops est un terme émergent qui décrit un ensemble de méthode et pratiques pour favoriser la collaboration et la communication entre les équipes de développement logiciel et les équipes d’exploitation. Il est une réponse au besoin des acteurs du Web qui, face à une course effreinée à la fonctionnalité et l’explosion de leur trafic, ont du modifier leurs méthodes et rassembler l’ensemble des protagonistes pour minimiser l’impact de l’applicatif sur l’infrastructure et maitriser les coûts ou améliorer la performance. Nous verons dans cette conférence comment ces différentes équipes peuvent avancer ensemble en gardant une relation de partenaire plutôt que de client/prestataire
Maitrisez les structures de données 102
Salon Honorat 06/06/2012 09:45-10:30 - Niveau : N/A - FrançaisNous avons certainement tous appris les structures de données à l'école: tableaux, listes, ensembles, piles, files (LIFO/FIFO), tas, tableaux associatifs, arbres,... et qu'utilisons-nous principalement en PHP? Les tableaux! Comme si ils avaient réponse à tout! Inévitablement, on retombe sur ce genre de problèmes fondamentaux lors d'audits de performance. Dans cette session, on apprendra quelques techniques avancées en réapprenant à se servir des types de données adéquats, en passant par des utilisations spécifiques des "arrays" PHP, des classes de la SPL ainsi que d'autres structures fournies par des extensions PHP/PECL.
La qualité au-delà du code
Espace Adenauer 06/06/2012 10:45-11:30 - Niveau : N/A - FrançaisLes cycles de développement des applications raccourcissent de plus en plus. La pression se fait plus forte sur les équipes de développement qui sont poussées à développer en mode mercenaire, où seul le résultat immédiat compte. Cette vision est généralement contre-productive sur le long-terme car on passe beaucoup plus de temps à maintenir une application qu'à la développer. Il est donc primordial de s'assurer de sa qualité au delà de l'adéquation avec le besoin fonctionnel. Cela passe par de nombreux éléments dont bien entendu la qualité du code source mais pas seulement. La présence de documentations pertinentes et à jour, les types et l'étendue des tests mis en place, l'architecture de l'application ou encore sa portabilité sont autant de facteurs clés du succès d'un projet.
Drupal comme vous ne l’avez jamais vu
Salon Honorat 06/06/2012 10:45-11:30 - Niveau : N/A - FrançaisDrupal et de manière générale PHP sont souvent utilisés dans un écosystème limité. Nous proposons de défricher avec vous de multiples modèles d’intégration permettant d’accélérer les développements tout en améliorant les performances et l'industrialisation, ainsi que d’apporter de nouveaux usages (moteurs à facettes, temps réel, graphiques, stockage documentaire). Du prototype fonctionnel jusqu’à son industrialisation, l’intégration judicieuse avec des briques externes peut résoudre simplement des tâches complexes. Cette présentation montrera comment, par des actes concrets, on peut tirer partie de briques techniques tierces depuis PHP. La session s'appuiera sur des retours d'expérience et des exemples de cas réels. Mots clés : drupal, mongodb, html5boilerplate, sf2 component, mink, node.js, graphite, backbone
A quick start on Zend Framework 2
Espace Adenauer 06/06/2012 11:45-12:30 - Niveau : N/A - FrançaisIn this talk we will present a simple web application built with Zend Framework 2. We will show the new features of the framework, such as the new MVC layer, the Event Manager, the Dependency Injection and much more. The aim of this talk is how to start programming with the new architecture of ZF2. Moreover, we will show the differences with the version 1 of the framework and how to migrate applications from ZF1 to ZF2.
Automatiser la qualité
Salon Honorat 06/06/2012 11:45-12:30 - Niveau : N/A - FrançaisIl faut tester pour vérifier son code. Et comme il faut le faire tout au long du cycle de vie d'un projet, il vaut mieux s'outiller pour laisser à la machine le travail laborieux et pouvoir intervenir. De la convention de code aux vérifications d'interfaces, nous passerons en revue les outils les plus pratiques à mettre en place, la discipline de projet à appliquer et comment montrer aux utilisateurs la somme des efforts réalisés.
Scaling Communication through Continuous Integration
Espace Adenauer 06/06/2012 14:00-14:45 - Niveau : N/A - FrançaisAt Etsy, we continuously deploy code. New features and bug fixes can go from development to production in 20 minutes. We have maintained this low barrier to deployment over the past year despite nearly doubling the number of people that can deploy. Communication has a huge impact on the velocity of development and moving forward. We explicitly communicate over IRC, but we also evolve communication patterns through several other vectors, and one of those vectors is out Continuous Integration environment. In this talk I will not only discuss how communication patterns at Etsy have evolved with our growing development team, but I will also elaborate on how team size, role composition, motivation, culture, and available tools sets can impact communication patterns and subsequently throughput.
Démons en PHP, de inetd à ZeroMQ
Salon Honorat 06/06/2012 14:00-14:45 - Niveau : N/A - FrançaisDurant cette présentation, nous passerons en revue les différentes techniques servant à créer des démons en PHP, c'est-à-dire des serveurs logiciels destinés à recevoir des connexions réseau et gérer des communications client-serveur. Nous verrons les techniques les plus simples, permettant de prototyper rapidement un démon. Ensuite nous nous intéresserons aux contraintes qui s'appliquent à ce type de développement, et les impacts que cela implique sur les choix de design logiciel. Nous aborderons alors les différentes techniques de création de démons autonomes en PHP. Pour terminer, nous verrons comment utiliser la bibliothèque ZeroMQ pour faire communiquer des programmes en utilisant des paradigmes différents du client-serveur traditionnel. Programme : 1. Rappel client-serveur 2. Démons basés sur (x)inetd 3. Différences entre mono-processus et multi-processus 4. Démons multi-processus 5. Démons mono-processus 6. Présentation de ZeroMQ 7. ZMQ : Différents types de communications 8. ZMQ : Load-balancing 9. ZMQ : Polling
Scalabilité sans limite pour vos applications PHP grâce au Zend Cloud
Espace Adenauer 06/06/2012 14:45-15:30 - Niveau : N/A - FrançaisAprès de nombreuses collaborations réussies avec Zend, NBS System a mis en place une offre d’hébergement spécifique qui tire parti de l’infrastructure de Cloud privé de NBS System & des outils Zend et qui permet d’obtenir un très haut niveau de service pour les applications PHP, en particulier dans le domaine du e-commerce (Magento, Prestashop, etc.)
Lors de cette session, Emile Heitor, CTO de NBS System, vous présentera l’architecture technique mise en place et les avantages que cette plateforme apporte pour gérer les applications, que ce soit du point de vue de l’hébergeur, d’un intégrateur web ou du client final. Les composants suivants du Zend Cloud seront ainsi abordés :
- Zend Server (et code Tracer) qui permet d’obtenir les indications sur la qualité du code, les bugs applicatifs, ainsi qu’une analyse fine du comportement du site
- MySQL Enterprise, afin de pouvoir contrôler les ressources allouées à la base de données, sa santé, sa performance et son état en terme de sécurité
- Munin, qui permet de connaître tous les paramètres vitaux d’un OS Linux
- Xen pour reconfigurer à la volée les serveurs et en étendre la puissance
Accès concurrents et scalabilité
Salon Honorat 06/06/2012 14:45-15:30 - Niveau : N/A - FrançaisL'accès concurrentiel est un problème majeur et récurrent dans toute application web un tant soit peu sollicitée. De sévères problèmes de corruption de caches et de locking se produisent quand la concurrence d’accès n’a pas été prise en compte dans le processus de développement et l’analyse initiales de l’application.
Les conséquences business peuvent être fatales et donner une image catastrophique d’une plateforme: pages vides, données obsolètes présentées, images corrompues, autant d’échecs, cuisants pour les techniciens, et coûteux pour l’entreprise. Confrontés à ces problématiques au cours de 10 dernières années sur des plateformes critiques de publication de contenu, servant plusieurs dizaines de millions de pages par mois, nous voudrions partager les bonnes pratiques d’architecture logicielle que nous avons accumulées: résorption des lock & deadlock de bases de données, des transactions volumineuses, optimisation de l’entrée/sortie disque.
La diffusion de plus en plus large de PHP, et la professionnalisation de son usage le placent dans des contextes où sont rapidement atteintes les limites du langage quant à la gestion de la concurrence. Nous partagerons le résultat de notre recherche & développement, touchant aussi bien les outils utilisables dans ce contexte (Varnish, Memcached, Redis...) que les algorithmes et architectures adaptées.
Table ronde DSI
Espace Adenauer 06/06/2012 15:30-16:30 - Niveau : N/A - Français
Animée par Yann SERRA, grand reporter chez 01 Business et Technologies, et avec la participation exceptionnelle de :
- Sébastien ANGELE, Directeur technique adjoint, Groupe Express – Roularta
- Martin BORONSKI, Directeur Technique, M6Web
- Sébastien DEBANDE, DSI à la Mairie de Lille
- Jean-Marc LEGLISE, DSI, LaFourchette.com
- Olivier GRANGE-LABAT, Directeur technique, Le Monde Interactif
- François ZANINOTO, CTO, e-TF1
TDD avec atoum
Salon Honorat 06/06/2012 15:30-16:15 - Niveau : N/A - FrançaisAu cours de cet atelier interactif, je vous ferais découvrir le développement piloté par les tests en temps réel en mettant en œuvre atoum , le framework de tests unitaires pour PHP 5.3+ simple, moderne et intuitif. Pour cela, je concevrais de zéro et en temps réel une ou plusieurs classes permettant la résolution d'un problème réel qui permettra à mon auditoire de découvrir le confort apporté par atoum dans un tel contexte, aussi bien au niveau de la rédaction des tests unitaires que de leur exécution.