[:fr]La parole est aux speakers : Frédéric Hardy[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Le RGPD expliqué par un développeur

Souvent, le métier du développeur est bouleversé par une nouvelle technologie, qu'elle soit un nouveau langage, un nouvel outil ou un nouveau concept. Mais il arrive également qu'il le soit par quelque chose qui n'a rien à voir avec la technologie, et le RGPD est l'un de ces choses. Derrière cet acronyme se cache en effet un texte de loi dont nous allons devoir à l'avenir, et très rapidement, tenir compte à la fois lors de nos développement et dans nos relations avec nos client et nos utilisateurs. À moins d'une dizaine de jours de la fin du délai de mise en conformité, je vous propose de faire le point sur l'impact du RGPD dans notre quotidien de développeur !

Salle Morpheus
17/05/2018
09:30-10:10

Tu nous présenteras le RGPD. Est-ce difficile de lire un texte comme celui-ci ?

Le RGPD est un texte juridique qui contient « seulement » 100 articles, mais chacun de ses articles contient souvent beaucoup d’alinéas et de références vers d’autres articles ou d’autres textes de loi.
De plus, il interfère avec d’autres textes de loi, qui sont donc mis à jour en conséquence, même en ce moment alors que le RGPD va être appliqué très prochainement.
Les tournures de phrases sont donc parfois particulières et il représente finalement une masse d’informations importante qu’il est nécessaire d’interpréter correctement afin d’en comprendre tous les tenants et les aboutissants.
Enfin, il y a depuis quelque temps beaucoup « d’experts » qui s’expriment à son sujet et qui diffusent des interprétations plus ou moins différentes, ce qui brouille l’image que l’on peut s’en faire.
L’un dans l’autre, pour un développeur tel que moi, il est donc… délicat d’avoir une vision claire des obligations qu’impose le RGPD, aussi bien pour moi que pour mon équipe ou mon employeur.
Pour autant, ce n’est pas le texte de loi le plus difficile à lire que j’ai eu à décrypter, et à mes yeux, le véritable challenge qu’il propose à un développeur n’est pas sa lecture.
En effet, si le RGPD définit les obligations du développeur vis-à-vis des données personnelles collectées par son code, il ne donne aucune information sur ce qu’il va devoir faire concrètement dans son quotidien pour le respecter, aussi bien techniquement qu’en termes de méthodologie.
Si j’osais une comparaison parlante pour un développeur, je dirais que l’interface `RGPD` existe, mais que la classe `developpeur` qui la supporte est encore à écrire, ou bien c’est encore une classe abstraite.
Il a bien des préconisations rédigées par la CNIL, mais elles s’adressent avant tout à des gens qui sont déjà sensibilisés à la gestion des données privées, ce qui, en France, est loin d’être le cas des développeurs.

(suite…)

[:fr]La parole est aux speakers : Benoit Jacquemont[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Bienvenue dans la matrice !

Un processus PHP qui s'emballe sur un environnement sans debuggeur ? Un webservice qui semble fournir une réponse suspecte ? Un processus tout à coup très lent ? Un programme bloqué avec 0% d'utilisation CPU ? Une application avec un comportement inattendu ? Cela vous est déjà certainement arrivé, avec cette question: comment savoir ce qui se passe dans ces cas là, sans toucher au code PHP ? Des outils systèmes (strace, ltrace, lsof, perf-trace, ...) permettent d'intercepter et d'analyser les échanges entre les procesus et le noyau Linux. Ils peuvent s'appliquer aussi bien sur un processus PHP que sur n'importe quel autre processus s'exécutant sur la machine. Bien utilisés, ils permettent de rentrer à l'intérieur du processus et de comprendre ce qu'il est en train de faire. Le contenu des entrées et sorties, les blocages, les temps passés dans les différentes tâches, etc.... Toutes ses informations sont disponibles avec les bons outils. Alors passez en coulisse des processus et venez déchiffrer la matrice avec moi lors de cette présentation !

Salle Jarvis
17/05/2018
11:25-12:05

Tu vas nous parler de nombreux outils du type strace ou ltrace. Quelles sont tes sources pour les découvrir ?

Lorsque je fais du debug sur un problème technique, qu’il soit applicatif, système ou réseau, j’ai vraiment besoin de pouvoir regarder ce qui se passe sous le capot. Au fil du temps, je me suis consistué une petite bibliothèque d’outils et de pratiques pour y parvenir. Je me suis bien sûr inspiré de ce que j’ai pu voir chez mes collègues dev ou ops, mais je suis toujours à l’affût de nouveaux outils. En fait, dès qu’il y a une zone d’ombre dans un fonctionnement, je vais essayer d’obtenir l’outil qui va permettre d’y mettre de la lumière, si celui-ci existe. Bref, c’est généralement un peu de temps à passer sur les moteurs de recherche avec des requêtes très spécifiques 😉

(suite…)

[:fr]La parole est aux speakers : Nicolas Wurtz[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

GRAOU : la production ferroviaire collaborative

Les conducteurs et contrôleurs des trains SNCF ont toujours eu leur planning au format papier. En tant que conducteur de trains, j'en avais assez de le saisir tout à la main, et me suis mis en tête de créer un outil simple de synchro entre nos agendas électroniques et nos métiers. Puis en voyant les données passer, et grâce à l'arrivée de l'openData, le champ des possibles est devenu immense : qui est sur quel train, quel matériel, quels statistiques, quand vais-je croiser mes collègues, où manger, qui dort où, etc. et tout ça dans une web-app construite from scratch en PHP/MariaDb, un peu de JS et une grosse réflexion UX (le métier développe pour le métier !). GRAOU est aujourd'hui la première application interne collaborative SNCF, unanimement plébiscitée et massivement utilisée par les agents concernés. C'est l'histoire d'un conducteur de trains qui jongle désormais avec les containers docker et optimise php-fpm pour gérer les 800k vues/jour...

Salle Morpheus
18/05/2018
11:25-12:05

Les applications internes à la SNCF doivent avoir tout de suite de grands impacts sur les voyageurs. Quels sont les conséquences sur le développement de ces applications ?

Nous avons la particularité chez SNCF, d’en plus être une très grande entreprise (250.000 collaborateurs), d’avoir une diversité de métiers très importante, ce qui entraîne un besoin et une offre d’applications internes tout aussi importante, parfois déployées de manière nationale, parfois créées au fin fond d’une région — la multiplicité des lieux de travail est une des raisons de ces besoins parfois très spécifiques et locaux.
Ce n’est donc pas évident, encore aujourd’hui, de proposer des outils qui conviennent à toutes et à tous, tant côté contenu que contenant, les spécificités et silos sont encore très répandus, mais heureusement ces inconvénients disparaissent peu à peu grâce aux choix d’ouverture et de transparence de la donnée qui sont mis en oeuvre depuis quelques années, et de plus en plus.
De mon côté, justement grâce à ce qu’a apporté (mais aussi imposé !) l’openData, j’ai pu construire mon application, qui à défaut de servir directement les voyageurs, donne une information identique et généralisée aux agents qui l’utilisent.
Et cette facilité d’accès à l’information qui concerne les acteurs des trains, rend leur mission plus limpide et plus impliquée — ils savent avec qui ils peuvent travailler, sur qui ils peuvent compter, et ça change tout. L’humain est revenu au centre du système, il a un nom et pas seulement un numéro de train, par conséquent les interactions avec les voyageurs et la qualité du service apportée s’en trouvent améliorées.
Un exemple ? GRAOU permet de synchroniser le planning d’un agent avec un agenda électronique au format ICS. Une contrôleuse, récemment divorcée, avait toutes les peines du monde pour partager son planning, à la main, avec son ex-mari quant à la garde de leurs enfants.
Aujourd’hui, celui-ci a sur son smartphone le planning de la mère de ses enfants, il sait quand elle aura besoin de lui et peut s’organiser en fonction. Et cette collègue part l’esprit plus serein s’occuper de ses voyageurs à bord du train; et dans ce métier qui peut s’avérer très difficile parfois, pouvoir commencer sa journée en toute quiétude n’est pas insignifiant…

(suite…)

[:fr]La parole est aux speakers : Derick Rethans[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

It's all about the goto

Don't worry, this is not about the goto keyword. In this presentation, I am showing you some of the inner workings of PHP. We are going to look at how different language keywords and constructs are handled internally. Basically, everything is converted to goto, but the how and why, is not as simple as it seems! This is a very in depth talk, mostly interesting to people that want to know how PHP works internally. Expect lots of wonkyness, a form of assembly, and trees.

Salle Jarvis
18/05/2018
14:30-15:10

You’re a mapping enthusiast. How did your passion for maps and OpenStreetMap come?

I have always liked maps, and would always by extensive ones before going on a trip. When I had just moved to the UK in 2009, I had an OpenMoko « phone ». As this was a fully Open Source phone, it had a map viewing program Tango GPS (now Foxtrot GPS) using OpenStreetMap tiles.

When I went out hiking for the first time with friends, I had brought the « phone » along to see where we should be going and found plenty of things (parking place, paths) missing from the map. And when I got back home I did some research into adding these things.

That then leads to finding the local OpenStreetMap user group, as I was new in London, and they combined walking (i.e., mapping London), maps (duh!) and visiting pubs after a mapping party. This combination worked great for me, and I’ve met many of my current friends through these mapping parties.

After these first changes, I have kept my neighbourhood up to date, and mapped nearly every building and address. In the last 9 years, I’ve added 240 000 points, and 53 000 ways and nearly 50 000 addresses!
(suite…)

[:fr]La parole est aux speakers : Hannes Van De Vreken[:]

[:fr]Jusqu’au PHP Tour Montpellier 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Caching with PSRs

In this talk you will learn what PSR-6 and PSR-16 are, why they are designed like they are, what the differences are, and how to use them. From the provided interfaces, the virtual package on Packagist.org, to the implementations available. Everything will be explained for both beginners and more experienced developers. We will dive into implementations, cache stampede protection, all using libraries we can find on Packagist.org. We will also show how to start using it today in our current applications by using adapters. The entire talk will be accompanied with code samples and live demos, showing both working and failing caching systems.

Salle Morpheus
18/05/2018
10:15-10:55

You will talk about how to use PSR for caching : did you have any tips on what to cache and when we need a cache mechanism ?

Before you cache, you need to be aware of your application’s behaviour. Profiling is a good start. By logging information, you can find places where caching could help your application’s performance the most. You can cache anything that is idempotent, runs several times with the same input and same output, and has a high latency due to the nature of the job. You can then start off with the quick wins: cache a slow query that runs thousands of times. Next up: things that are extremely slow but only need to happen a handful of times. You can even pre-compile that in a back-ground job and store it. After that it gets harder: a fast query that runs millions of times, maybe. You can save some time by avoiding millions of round-trips to the DB and lower the load on the DB.

Also beware of cache invalidation. Don’t make your caching layer too complex or you’ll be chasing caching artefacts. Your caching layer is supposed to save you time, not spend more time. Last tip: if your caching layer fails, your app should still work, albeit slower 😉

Come see my talk for more tips!
(suite…)

[:fr]La parole est aux speakers : Cédric Spalvieri[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Merci de laisser ce code dans l'état dans lequel vous aimeriez le trouver

Il existe un dicton célèbre dans le monde de la programmation informatique : “Code toujours comme si la personne qui va maintenir ton code est un violent psychopathe qui sais où tu habites.” Même si je ne suis pas vraiment d’accord avec l’idée d’avoir peur des gens avec qui l’on travaille, il est de notre devoir de développeur·se de faire en sorte que la maintenance du code que l’on écrit se fasse dans les meilleures conditions possibles. Avec un zeste de psychologie comportementale, nous verrons quelles sont les bonnes pratiques qui peuvent être mises en place pour faire du code un endroit où l’on aime revenir.

Salle Morpheus
18/05/2018
15:15-15:55

Ta conférence est intitulée « Merci de laisser ce code dans l’état dans lequel vous aimeriez le trouver » : qu’est ce qui t’a donné envie de présenter ce sujet?

J’aime beaucoup les citations et il y en a une qui s’applique parfaitement à notre industrie : “La seule constante, c’est le changement”. Il est très rare qu’une ligne de code soit écrite et que l’on n’y revienne jamais, ne serait-ce que pour la lire. D’une certaine façon, la qualité du code sur lequel on intervient fait partie des conditions de travail.

J’ai passé la grande majorité de ma carrière à travailler en équipe, à voir le code passer de clavier en clavier, d’écran en écran. Tout le monde aime travailler dans de bonnes conditions, et le moins que l’on puisse faire lorsque l’on est en équipe, c’est de s’appliquer à laisser aux autres de bonnes conditions de travail. C’est la philosophie que j’ai envie de partager aujourd’hui.

(suite…)

[:fr]La parole est aux speakers : Michael Bodnarchuk[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Designing Test Architecture That Does Not Suck

Every PHP application needs its policy about tests. What is important to test, what is not, at which levels should a feature be tested. As we think of application architecture before writing a single line of code, we should think of a test architecture before implementing tests. From this talk you will learn: * how to transform business expectations to tests using ATDD and BDD approaches * how (and why) to incorporate all testing levels (acceptance, functional, integration, unit) * how to prioritize tests * how to write stable tests that won't be the stick in the wheel * how to deal with test data * how to decide, should it be unit or integration test * how to choose the type of a test

Salle Morpheus
17/05/2018
10:15-10:55

You’ve started the Codeception and CodeceptJS projects. Could you introduce us those projects ?

No one loves writing tests. Really. Testing takes our time and our efforts, instead of writing business valuable code we do the voodoo magic with mocks, stubs, and heavy refactoring. This is really hard to explain to business: I spent last few days trying to set up the test suite. To business it may sound like a developer was watching YouTube and playing video games. And that happened to me: when I tried to explain to my CTO what are tests and how do they worked I stepped away. Ok, give me two weeks and I will make tests easy to read, understand, and they will provide a safety belt for our releases. That’s how Codeception started.

Codeception is a testing framework for PHP focused on making tests readable and simple. It keeps focused you on specification, so tests are easy to read and write. If you didn’t use it yet, you should probably try as it will save you much time. We already support testing in all major PHP frameworks and a browser. Unit tests are supported as well!

CodeceptJS is a JavaScript version of Codeception focused around browser tests only. It allows you to write the same tests using in Selenium, Protractor, or Puppeteer the new tool from Google Chrome which allows you to run tests headlessly in Chrome using DevTools protocol.

Codeception and CodeceptJS follow the same philosophy: don’t reinvent a wheel in your tests. If this is a common problem we might have already solved it!

(suite…)

[:fr]La parole est aux speakers : Hélène Schapira[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Décryptez votre contrat de travail !

Grilles de salaires, horaires, avantages et contraintes : je vous propose de décoder ensemble les fonctions de votre contrat de travail, de décrypter les appels aux conventions collectives et de comprendre les boucles de la réforme du Code (du Travail). Osez le "peer review" des pratiques RH de l'entreprise, sachez reconnaître et éviter les pièges du "chez nous, ça marche comme ça". "Nul n'est censé ignorer la loi"... ce serait mieux si tout le monde la comprenait. Je vous promets une conférence trépidante et fun (parce que c'est aussi ça, les RH) !

Salle Morpheus
18/05/2018
14:30-15:10

Ta présentation portera sur le contrat de travail. Ta conférence sort du cadre habituel des sujets du PHP Tour, qu’est-ce qui t’a poussé à proposer ce sujet ?

Quand j’ai commencé la RH (plus précisément la paie et la gestion des contrats) j’ai été surprise du nombre de gens qui me disaient que tout ça c’était trop compliqué. Alors j’ai tenté une expérience avec mes salariés : leur expliquer leur bulletin de paie en détail ! La même année, j’ai fait mon premier SudWeb et je me suis dit que c’était l’occasion de tester avec un public différent. Je me suis rendue compte que ces sujets intéressaient du monde en réalité et qu’ils ne semblaient compliqués que parce que personne ne prenait le temps de les expliquer. Et, entre nous, ça arrange parfois bien du monde que les salariés ne s’intéressent pas trop à leur contrat et leur paie… Du coup j’ai lancé mon blog dans la foulée (libelilou.github.io) pour essayer de vulgariser un peu la RH. L’avantage des devs c’est que vous discutez facilement entre vous, vous êtes généralement assez curieux·se et les frontières n’existent pas sur Internet, donc c’est plus facile pour démarrer la sensibilisation et la diffusion des informations !

(suite…)

[:fr]La parole est aux speakers : Mathieu Santostefano[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Traduire efficacement une application Symfony

La traduction d'une application est une étape primordiale dans un projet international. Mais sa mise en place est souvent douloureuse, et ça le reste tout au long de la vie de l'application. Un nouveau type d'intervenant entre en jeu en plus des développeurs, chefs de projets, designers, voici maintenant les traducteurs. Comment faire travailler toutes ces personnes efficacement, et garder l'intégrité des traductions de l'application ? C'est ce que je vous propose d'aborder dans cette conférence. Nous verrons ensemble quels outils externes utiliser pour faciliter la traduction aussi bien pour les développeurs, que les traducteurs, mais aussi pour les intervenants en qualité qui sont chargés de vérifier tout ce travail. Nous verrons également comment brancher ces outils au sein de Symfony pour bénéficier d'un workflow de traduction cohérent et simple d'utilisation d'un environnement local à la production. À la fin de la conférence vous n'aurez qu'une envie, mettre à jour vos projets avec ces outils pour enfin vous épargner de longues journées de mise à jours de traductions !

Salle Jarvis
18/05/2018
12:10-12:30

Tu nous parleras de traduction d’application Symfony. Qu’est-ce qui t’a motivé à parler de ce sujet et dans quel cadre as-tu été amené à travailler sur des traductions ?

La mise en place de la traduction d’une application web est quelque chose que j’ai souvent rencontré dans mes différentes expériences professionnelles. Encore plus depuis que je suis chez JoliCode, car je travaille sur plusieurs projets par an.
Récemment, pour un de ces projets nous avons eu besoin de mettre en place la traduction d’une application en 6 langues. Cela a nécessité une quantité importante de travail, car non seulement nous devions traduire l’interface utilisateur, mais également permettre aux éditeurs de l’application de pouvoir saisir du contenu dans plusieurs langues différentes.
J’ai en grande partie contribué à la mise en place de ce système, et c’est ce qui m’a motivé à proposer ce sujet de conférence au PHP Tour Montpellier 2018.

(suite…)

[:fr]La parole est aux speakers : Nicolas Lœuillet[:]

[:fr]Jusqu’au PHP Tour 2018, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Tenter de gagner (un peu) sa vie avec un projet open source

Depuis bientôt 5 ans maintenant, nous sommes une petite équipe qui développe une application web open source, wallabag, codée en PHP. Et depuis le début de cette aventure, je me dis que ça serait chouette d'essayer de tenter de gagner un peu sa vie grâce à ce projet qui nous prend du temps. Il y a un peu plus d'un an, j'ai donc lancé un service libre et payant, https://wallabag.it Je vous propose donc mon retour d'expérience sur la naissance du projet, les différentes étapes, les craintes, les doutes et les réussites, comment je gère tout ça au quotidien, etc.

Salle Morpheus
17/05/2018
12:10-12:30

Peux-tu nous présenter le projet wallabag et quel est ton rôle dans celui-ci ?

wallabag est une application de lecture différée : je n’ai pas le temps de lire un article, je l’archive et je pourrai le consulter plus tard sur mon ordinateur, ma tablette, mon smartphone ou ma liseuse.
La principale fonctionnalité est que wallabag ne conserve que l’article dans une version épurée : c’est-à-dire que le reste de la page HTML n’est pas enregistrée (les publicités, la structure du site, les commentaires, etc.). L’article (et ses images), et uniquement ça.
J’ai commencé ce projet tout seul il y a bientôt 5 ans, quand Google a annoncé la fermeture de Google Reader. Je me suis inquiété de ce qui pouvait arriver si l’outil que j’utilisais à l’époque (Pocket) fermait du jour au lendemain. J’ai donc voulu me créer mon propre outil.
Aujourd’hui, nous sommes une équipe de 4 personnes pour la partie application web, une personne par application smartphone, deux personnes pour l’extension Chrome / Firefox, une dizaine de traducteurs et quelques milliers d’utilisateurs.

(suite…)