La parole est aux speakers : Mathieu Girard

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Le site de l'activité partielle, résumé d'un succès à quel prix ?

Imaginez, nous approchons de la mi-mars, vous travaillez "tranquillement" sur un site pour le gouvernement dans une petite ville dont personne n'entend parler. Soudain, vous entendez des personnes quitter leur bureau alors qu'il n'est même pas midi : le bâtiment de 500 personnes est en train de se vider en préparation du confinement.

Malgré ce mouvement de foule, un de vos chefs arrive et vous dit en substance : "Toi tu restes jusqu'à nouvel ordre, on t'affecte au site de l'activité partielle car ça devient la priorité numéro une de la maison".

L’économie Française est sur le point de se mettre “en pause”. Du jour au lendemain, plusieurs millions d’établissements vont s’inscrire et demander à être indemnisés car forcés de s’arrêter le temps que les choses se calment.

Depuis ce moment où tout bascule, je vous propose de vous raconter brièvement comment le site de l'activité partielle a complètement changé d'échelle pendant la crise du covid-19 : succès, difficultés, tranches de vies au cours d'une expérience humaine inédite.

Grace Hopper
23/10/2020
12:10-12:30

Quel a été le succès du site officiel de l’activité partielle durant ces derniers mois ? Quel a été le taux d’augmentation des visites / de l’utilisation ?

L’enjeu était de taille concernant ce site, car en 6 ans nous avions indemnisé un peu plus de 80 000 entreprises qui s’étaient mises en activité partielle. En deux mois nous sommes passés de 80 000 entreprises à plus d’1 300 000 (!). Suite à l’annonce du confinement, du jour au lendemain le site ne tenait plus car il n’était pas fait pour supporter autant d’utilisateurs (1 entreprise = 1 utilisateur au minimum). Mais avec de l’astuce / audace, l’envie de rendre service et beaucoup d’implication, chaque équipe a su faire en sorte que le site passe de 500 à 400 000 visites/jour.

(suite…)

La parole est aux speakers : Antti Rössi

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

How your PHP application can get hacked, and how to prevent that from happening?

You’ve probably heard about XSS, SQL Injection, and RCE. Very few developers out there have witnessed first-hand what exploiting any of the mentioned vulnerabilities looks like, and therefore don’t necessarily understand the consequences that having such vulnerabilities in your application can have. In this talk, we’ll exploit some commonly known vulnerabilities (OWASP top 10) and misconfigurations that can occur to a PHP application running on a Linux based host. By learning to think like a hacker you’ll be able to develop more secure applications with PHP, and to keep your users, clients, and yourself safe.

This presentation consists of security concept theory sections from PHP developers' point-of-view and a few hands-on hacking demonstrations. At the end of the presentation, we go through a set of concrete action steps to secure our applications from the vulnerabilities we learned about earlier.

Grace Hopper
22/10/2020
09:30-10:10

In the context of the recent Twitter hacks, is source code the first thing to improve when talking about security? What about processes and employees training ?

Source code alone should certainly not be the de facto first thing to improve when talking about security. The security of your systems and solutions is always equal to the security and robustness of the single weakest link in your system.
As an example running a secure and well-crafted web application on an otherwise unhardened and outdated web server will most certainly cause an overall system compromise. A stolen admin password can also easily result in total mayhem if you’re not utilizing strong multi-factor authentication for admin users, and you for example allow them to query and export sensitive data.

Malicious insiders and social engineering attacks are often ones of the toughest threats for a company to mitigate, like we saw in the recent Twitter hack incident. The best preparations for these kinds of threats include staff awareness training and separation of duties, which both focus on the people and process side of security. When a single weak link can and will compromise your overall security, you need to look at security much more comprehensively than just the technical side.

(suite…)

La parole est aux speakers : Frédéric Bouchery

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Utopie de la généricité

Pourquoi, avec le temps, nos développements se complexifient ? Pourquoi n'arrivons-nous pas à conserver un code simple ? Quand on essaie de voir à plus long terme, souvent cela nous prend du temps, ce n'est pas simple à utiliser, et d'ailleurs, ce n'est pas utilisé ! Bref, est-ce possible de concevoir du code générique, réutilisable et qui dure longtemps ? Vous allez voir que la réponse n'est pas toujours évidente, et qu'il serait temps de fixer des règles.

Katherine Johnson
22/10/2020
09:30-10:10

Tu vas nous présenter un sujet que tu proposes à l’AFUP depuis le Forum 2016 : penses-tu que le timing coïncidait enfin pour pouvoir aborder ce thème en 2020 ?

Je ne sais pas si on peut parler de timing, car je n’ai pas l’impression qu’il y a spécifiquement un engouement particulier pour ce thème en 2020. Par rapport aux autres sujets que j’ai proposés, il doit être le seul sur le thème de la complexité et c’est un sujet qui semble toujours intéresser notre auditoire. D’ailleurs, avec ma conférence de 2013 et celle de l’année dernière, ça fera 3 conférences sur ce thème. Là, je vais aborder plus spécifiquement le problème de l’abstraction hâtive et de l’espérance de vie en bonne santé des développements.

(suite…)

La parole est aux speakers : Jean-Pierre Vincent

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Performance : mais que se passe-t-il après le backend ?

Même avec un un code backend performant, l’utilisateur peut attendre plusieurs secondes avant de pouvoir utiliser votre interface : mais pourquoi ? Grâce à des exemples tirés de grands sites français (Le Monde, Cdiscount, Glamour …) nous allons voir les techniques modernes pour améliorer les performances d’un site, telles que perçues par l’utilisateur. Loin des seuls conseils poussés par Google LightHouse, nous verrons si HTTP/2 est vraiment une bonne affaire, ce que coûte un JS sous Webpack, si la compression d’images est une technique vaudou, et ce que peuvent faire graphistes ou intégrateurs pour accélérer un site. Outre les techniques nous verrons 2 outils phares de la perf et on discutera de comment gérer un projet de d'amélioration des perfs.

Grace Hopper
22/10/2020
14:30-15:10

À quel moment doit-on s’inquiéter des problématiques de performance dans un projet ?

Dans le cycle de release, un tout petit peu au début et beaucoup vers la fin du projet, lorsque 80% du code est écrit.
Au début il faut s’intéresser à la performance pendant la conception des maquettes et des schémas d’archi : où est-ce qu’on aurait à priori des temps d’attente qu’il va falloir designer pour faire patienter, quelles sont les fonctionnalités qui vont évidemment challenger la perf (listes infinies, images venant de contributeurs, plusieurs frameworks CSS/JS au même endroit …). Connaître les patterns de chargement classiques que l’on peut d’ores et déjà éviter est un plus, mais la plupart des technos modernes prévoient déjà ces cas-là.
Vers la fin, de manière pragmatique, on peut commencer à tester sa preview dans les conditions de production : avec la configuration serveur prévue (compression, protocole réseau, domaines, cache …), en y intégrant tous les tiers (pub, tracking, services externes …) et à partir du moment où environ 80% des fonctionnalités des pages ont été produites, on aura quelque chose de plutôt réaliste ! Quand je n’interviens pas sur la production, c’est à ces 2 moments-là qu’on fait appel à moi.

(suite…)

La parole est aux speakers : Benoit Jacquemont

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Pourquoi 0.1 + 0.2 != 0.3, ou le monde mystérieux des nombres à virgule flottante.

Et oui, si vous exécutez le code ci-dessus en PHP, et dans la plupart des autres langages, celui-ci vous confirmera bien que 0.1 + 0.2 n'est pas égal à 0.3.

Mais ce comportement étrange peut s'expliquer, voire même se justifier.

Les nombres à virgule flottante ont le pouvoir de nous ouvrir un univers complet et souvent peu compris. À condition bien sûr de les utiliser correctement.

Cette conférence présentera un peu de théorie et beaucoup d'exemples concrets.

De la Première Guerre du Golfe, au moteur de rendu graphique de Quake, en passant par le fusée spatiale Ariane 5, nous verrons ensemble les avantages et les dangers potentiels de l'utilisation des nombres à virgule flottante.

Nous tirerons de ces exemples des leçons que nous pouvons appliquer sur nos pratiques de développement quotidiennes.

La conférence couvrira également quand utiliser les nombre à virgule flottante, et quand les éviter (prix, facturation), et quelles sont les alternatives.

Katherine Johnson
23/10/2020
09:30-10:10

À chaque conférence que tu donnes à l’AFUP, tu prends des fondements parfois complexes dans le développement et tu arrives à les rendre très clairs. Quel est ton secret ?

Déjà merci pour le compliment ! Essayer de rendre les choses claires c’est effectivement ce qui m’anime pour faire ces conférences.

Je ne sais pas s’il y a un secret, mais j’essaye de me mettre à la place des personnes qui vont assister à la conférence, d’essayer de ne rien assumer en terme de prérequis, et de construire une progression qui puisse être suivie au fur et à mesure que le talk plonge au sein du sujet.

J’avoue aussi que je choisis aussi des sujets qui sont suffisamment circonscrits en terme de périmètre ce qui permet d’aller en profondeur sans avoir non plus à couvrir un très grand nombre de pré-requis.

(suite…)

La parole est aux speakers : Ben Smith

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

The new LAMP stack is Serverless

AWS Lambda, Amazon API Gateway, MySQL, PHP - it’s LAMP but not as you know it. In this session, I’ll show why there has never been a better time to build serverless applications with PHP.

Using this new LAMP stack to build serverless applications allows PHP developers to benefit from the agility and scalability enabled by the serverless paradigm, all without needing to manage servers. I’ll demo how to get started running your PHP code using functions as a service. You’ll learn how to connect to databases at scale with spiky workloads, and continue to use your favourite libraries and tools, without impacting performance or availability.

Learn how to become a serverless PHP developer, and use the world’s most popular web runtime to build scalable, agile apps without the server management

Grace Hopper
23/10/2020
15:15-15:55

Do you think that there is only one LAMP stack?

No – the original meaning of the acronym itself can be applied differently, depending on your flavour of language be it Perl, PHP, or Python. Then, there’s a number of variations of LAMP packages. LAPP substitutes PostgreSQL for MySQL, a WAMP stack uses Microsoft Windows. XAMPP is a cross-platform version of the bundle that can be downloaded and installed on Microsoft Windows, Mac OS X, Solaris, or Linux. Essentially, they all refer to an application stack that is typically both free to use and open source, which functions as a general purpose web server.

(suite…)

La parole est aux speakers : Antoine Bluchet

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Propulser du temps réel avec PHP en 2020 !

Avec l'annonce du composant HTTP de Symfony en 2019 et son adoption courant 2020, de nouvelles possibilités de communication entre les applications PHP et le reste d'internet sont possibles ! Parmis elles l'utilisation de Mercure, un nouveau protocole construit sur la base de requêtes HTTP et de Server-Sent Events. Assemblés avec une application Symfony ces technologies permettent des usages dits de temps réel ! L'exemple courant est celui de la mise à jour des données de vos applications. Cela dit, qu'en est-il de la communication entre clients ? Voire entre serveurs ? Venez assister a un retour d'expérience autour d'un cas concret et découvrir ainsi de nouveaux axes d'amélioration pour des applications toujours plus réactives !

Grace Hopper
23/10/2020
09:30-10:10

Tu vas nous parler de temps réel au Forum PHP 2020, peux-tu nous énumérer les problématiques résolues avec ce genre de mise en place ?

Cela fait plusieurs années que nos applications se font de plus en plus réactives. On exécute d’ailleurs souvent nos requêtes HTTP via du Javascript. Cependant il est courant d’avoir besoin de mises à jour dans le navigateur en temps réel, par exemple le statut de disponibilité d’un utilisateur. Il existe plusieurs techniques pour ce faire et je vais parler principalement des Server-Sent Events qui sont des événements envoyés du serveur vers le client (mobile ou web). D’autres éléments d’une infrastructure logicielle pourraient aussi être concernés par ces mises à jour en temps réel…

(suite…)

La parole est aux speakers : Jonathan Van Belle

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

JSON en base de données, manipulons un peu cela

Une base de données relationnelle moderne peut facilement gérer du JSON. Avec quelques connaissances, vous pouvez facilement enrichir le comportement de votre modèle de données avec un soupçon de JSON. Nous verrons donc, comment utiliser certaines fonctionnalités avancées de mysql / mariadb et postgresql afin d'effectuer certaines recherches, créer des index, utiliser des colonnes virtuelles, etc. Au final, nous verrons que dans bien des cas, un peu de JSON résout pas mal de soucis, qu'une table ou plusieurs colonnes en plus, auraient rendu plus compliqué.

Katherine Johnson
23/10/2020
12:10-12:30

Qu’est-ce qui fait de JSON le format le plus adapté pour stocker des données non structurées en base ? Existe-t-il des formats alternatifs ?

JSON est structuré, mais souvent la structure fluctue fortement 🙂 Ce qui est intéressant avec le format JSON, c’est surtout qu’il nous est connu. C’est lisible par un humain, lisible par un ordinateur et dans le monde du web, c’est connu de toutes et tous ou presque. Il est aussi facile à réparer en cas de souci. C’est aussi une structure de donnée indépendante, qui n’est pas soumise à variation en cas de changement des choses, comme peut l’être un serialize (évolution des noms de classe, éventuellement incompatibilité avec des montées de version PHP, etc) et donc lisible par d’autres langages de programmation.

Des alternatives existent et elles vont vraiment varier d’un besoin à l’autre. JSON est requêtable en base de données depuis un certain temps déjà, avec des fonctions propres, là où d’autres formats ne le sont pas. Des alternatives pourraient-être : serialize/ubnserialize, JSONB (JSON sous format binaire), BSON (JSON binaire, mais limité), système de hashing… Il en existe beaucoup en fait, mais moins connus. Certains sont inspirés des nouveaux formats d’envoi par le réseau, d’autres sont d’anciennes pratiques. Et en fonction de votre infrastructure, d’autres possibilités s’ouvrent, mais là on s’écarte de la question je pense.

(suite…)

La parole est aux speakers : Olivier Dolbeau

Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Jane & Webby ou la vie de mes amies

Ca fait quelques temps que je traine avec Jane & Webby (la mascotte d'APIPlatform), deux de mes plus proches copines. Si on s'entends si bien tous les trois, ce n'est pas pour rien, en effet nous sommes tous trois fans de OAS, l'OpenAPI Specification.

Dans l'équipe, chacun sa spécialité ! Webby tente de suivre à la lettre les préceptes de l'OAS pour écrire de beaux documents conformes à la RFC, Jane n'a pas son pareil pour déchiffrer les écrits de l'OAS et en faire de superbes clients et moi... bon moi je ne fais que leur filer un coup de main pour que mes potes s'éclatent et ça me plait !

On a fait les 400 coups ensembles ! J'pourrais vous raconter la fois où on s'est amusé à donner des documentations diférentes à nos connaissances en fonction de nos affinités ! C'était dingue, notre meilleur pote avait accès à tout mais le type bizarre qu'on avait rencontré la veille n'avait presque rien ! 😀 Oh, y'a aussi la fois où, grand seigneurs, on a décidé d'aider nos copains en leur donnant accès à l'historique complet des opérations qu'ils avaient faites sur notre API ! 😀 C'était grandiose !!

On forme une équipe, on est soudés, on a peur de rien et si on fait un peu peur parfois, on ne mords pas, promis ! Allez venez, j'vais vous les présenter et vous comprendrez pourquoi ça se passe si bien entre nous. 🙂

Grace Hopper
23/10/2020
14:30-15:10

Dans ta bio tu te décris comme « feignant », en précisant que c’est une qualité. Pourrais-tu nous dire pourquoi ?

Je suis intimement persuadé que la fainéantise, dans le sens « partisan du moindre effort » est une qualité dans le développement. Par exemple, la fainéantise permet souvent de ne pas tomber dans le piège de l’over-engineering : commençons par faire au plus simple puis itérons plutôt que de « perdre du temps » à réfléchir à tous les cas possibles, actuels et futurs, avant d’écrire la moindre ligne de code.
Bien que je considère la fainéantise comme une qualité, j’avoue qu’il m’arrive parfois d’en abuser : « j’écrirai ce test plus tard », « ce n’est pas urgent, je vais mettre un TODO »… C’est tout de suite beaucoup moins vendeur, mais j’essaye de me soigner. 🙂

(suite…)

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :