Cecil, mon générateur de site statique

Depuis quelques années les générateurs de site statique tels que Jekyll, Hugo, 11ty, etc. ont le vent en poupe.

Arnaud Ligny nous fera un retour d'expérience sur la création de son propre générateur de site statique, développé en PHP : ce qui l'a motivé et ce qu'il en a appris.

De l'humain à l'ordinateur, ou découvrir le sens d'un texte avec ElasticSearch.

En y réfléchissant un peu, un texte, des phrases, des mots, ne sont que de simples suites de caractères, tout comme une image n'est qu'une simple matrice de pixels. Cependant, notre cerveau est capable d'interpréter cet enchaînement de caractères, et de l'associer à des concepts, en d'autres termes de lui donner du sens. Si on prend un peu de recul là-dessus, on peut se dire que notre cerveau est sur bien des aspects clairement impressionnant.

Un enjeu de ces dernières années, c'est entre autres de permettre aux ordinateurs d'imiter cet aspect notre cerveau, en leur donnant la capacité de trouver le sens de la donnée avec laquelle ils travaillent. C'est par exemple ce que tente de faire l'intelligence artificielle.

Je vous rassure tout de suite, on ne va pas du tout parler d'intelligence artificielle (même si cela serait extrêmement intéressant). On va cependant réduire notre champ de travail et essayer de comprendre comment il est possible d'attribuer un score de corrélation entre un texte donné et une multitude d'autres. Et pour cela, on va se pencher sur la manière dont se prend ElasticSearch (ou plutôt Apache Lucene) pour répondre à cette problématique.

Sum equation Bienvenue en terminale, vous avez deux heures. Cette équation (simplifiée) représente la manière de calculer ce fameux score de corrélation, et c'est exactement ce que nous allons décortiquer.

Dans un second temps, nous verrons comment nettoyer un texte "humain" afin de faciliter sa compréhension par un ordinateur. Char filters, tokenizers, token filters, tant d'outils qui permettront de réduire un texte à son sens profond, de réduire son "bruit" afin d'optimiser les scores de corrélation.

Et petit bonus, vous pourrez même briller en société en étant en mesure de placer dans vos soirées mondaines des termes comme "Term frequency", "Inverse document frequency", "Coordination factor", "Inverted index"...

Comment on est passé de 1800 emails à 70 000 par jour chez Trustt en 1 mois avec RabbitMQ

Trustt est une solution SaaS de création de communauté d’influence produits propriétaire via un programme ambassadeur sur les sites des marques. Au départ, les emails étaient envoyés par un cron qui tournait toutes les 15 minutes par lot de 50 mails à cause de requêtes lourdes et du temps de latence de 0.5 seconde de l’API d’envoi d’email. Les emails étaient envoyés par ordre de priorité et il y avait un reliquat de 200k emails non prioritaires non envoyés.

Face à l’hyper croissance de notre audience, l’objectif était de pouvoir augmenter le nombre d’emails envoyés par jour et d’épurer le reliquat des emails non prioritaires. RabbitMQ fut la solution à ce problème, nous a permis de résorber le reliquat en 4 jours et d’envoyer aujourd'hui 70k emails par jour sur 1 consumer.

Tags : PHP, RabbitMQ, tâches asynchrones, montée en charge, DDD

Et si on étendait SQL avec du PHP ?

Avez-vous déjà utilisé Doctrine ? Trop souvent on se laisse porter par ses abstractions sans vraiment chercher à comprendre la magie derrière la librairie. Dans cette présentation, je vais d'abord vous alerter sur les effets de bords liés à l'utilisation de Doctrine et vous présenter des cas d'utilisations où le framework est limitant et dur à adapter. Dans ces cas, quelles sont les solutions alternatives au Doctrine Query Language ? Et si on revenait au bon vieux SQL et ses bénéfices ? Est-il possible de bénéficier du système d'abstraction de Doctrine par dessus la puissance du SQL natif ? Et comment fait-on pour transformer nos données du tableau associatif en objet PHP ? Je vais vous présenter une solution pas comme les autres, proposant de la flexibilité, paliant à la difficulté d'adaptation de Doctrine et vous permettant de rester maître de la donnée et de la façon dont vous la récupérez.

Guide pratique d'une méthodologie UX pour la conception de features

Vous avez la sensation d’arriver en bout de chaîne ? De développer des maquettes irréalisables ou des features dont vous ne comprenez pas le sens ? Si cela vous parle, il y a une solution !

Je vous propose de vous présenter une méthodologie UX inclusive et transversale qui fonctionne pour le développement de nouvelles features. Que ce soit le développement d’une messagerie interne ou la refonte d’un tunnel de vente, nous allons détailler une méthodologie éprouvée à travers ces deux exemples très différents pour vous montrer ce qui peut fonctionner et quelles sont les clés du succès.

De la constitution d’une équipe mixte composée de personnes tech et fonctionnelles, à la rédaction des specs techniques et fonctionnelles en passant par la recherche UX, les workflow et les maquettes, nous analyserons en détail les étapes de cette méthode. Ce guide pratique pourra ensuite être utilisé par morceaux ou en intégralité selon vos besoins, vos ressources, votre produit et les spécificités de votre entreprise.

Si vous voulez vous investir aux côtés de vos équipes produit ou si vous manquez de ressources internes (product owner/manager, chef.fe.s de projets etc.), si vous êtes freelance et devez accompagner vos clients dans le cadrage des projets ou simplement si vous souhaitez en apprendre plus sur la partie amont du développement cette conférence est faite pour vous.

Le Prométhée moderne : embarquer PHP dans Go

Go est un langage "compatible C" : on peut appeler du code C depuis Go, et du code Go depuis C. PHP, lui, est écrit en C.

Théoriquement, on pourrait donc embarquer PHP directement dans un programme écrit en Go, au hasard, dans un serveur web.

Est-ce possible ? C'est ce que nous découvrirons au cours de ce talk : nous plongerons dans les entrailles de PHP pour comprendre comment l'interpréteur fonctionne, et comment on peut l'interfacer avec un serveur web. Nous découvrirons ensuite certaines caractéristiques typiques de Go telles que les Goroutines et son serveur HTTP natif, et comment on peut en tirer partie pour améliorer les performances de nos applications PHP.

Nous verrons ensuite que ce syncrétisme, qui peut sembler loufoque au premier abord, offre des opportunités inédites :

  • simplifier vos déploiements en embarquant directement un serveur web, l'interpréteur PHP et votre code source dans un seul binaire
  • conserver les services des applications Symfony ou Laravel chargés dans la mémoire du serveur web, et s'en servir pour traiter plusieurs requêtes HTTP
  • écrire des fonctions en Go (ou en C, voir même en assembleur) et les appeler directement depuis le code PHP

Pourquoi vous n’attirerez et ne retiendrez pas les femmes dans vos équipes tech.

Les femmes sont sous-représentées dans le domaine du numérique. Elles représentent à ce jour uniquement 30% des salariés, tous métiers confondus.

Que s’est-il passé dans ce secteur professionnel pourtant dominé par la gente feminine lors de sa génèse ? Les femmes ne se sentiraient-elles plus ou pas à leurs places ?

Quelques constats troublants :

  1. les études superieures menant au numérique sont investies par les hommes ;
  2. les annonces de recrutement ne sont pas, en règle générale, pensées pour les femmes ;
  3. les équipes tech ne pensent pas aux besoins profonds des femmes ;
  4. les femmes n'ont pas la sensation d'être entendues.

Pourtant, vous savez quoi ? Les femmes communiquent. Hélas, bien souvent, on ne les écoute pas. Et quels en sont les résultats ? De la migration vers des métiers corollaires, du brown-out, de la désincarnation dans l'équipe, des démissions, la création de la FemTech et de safe places comme lieux d'expression communautaires.

Alors, si vous voulez favoriser la mixité et que vous avez saisi que la cause des femmes dans la tech est une brèche pour résoudre, en plus, la problématique de la diversité et de l'inclusion, participez à mon talk !

Les subtilités du e-commerce à la française

Le e-commerce à la française a ses particularités auxquelles on a tous déjà eu affaire : double affichage hors-taxe / TTC, taux de taxe différent en fonction du produit vendu, éco-participations… Mais connaissez-vous sur le bout des doigts les règles qui régissent la vente en ligne en France ? Saviez-vous que l'éco-participation d’un produit pouvait avoir une TVA différente du produit en lui-même ? Et n’avez-vous jamais entendu parler de l’octroi de mer ?

Le développement par Monsieur Biz d’un site sous Sylius pour un e-commerçant Français a été pour nous l’occasion de repartir d’une feuille presque blanche sur le sujet. En effet, nous avons découvert que Sylius ne pouvait gérer nativement un double affichage HT / TTC, qu’il n’existait pas de plugin qui traitait les écotaxes, ou encore que le paiement par mandat administratif n’était pas si facile que ça à implémenter.

Dans cette conférence, que je souhaite fun et accessible, je voudrais présenter une partie des subtilités, parfois étonnantes ou absurdes, de la vente en ligne sur le marché français. A travers ma propre expérience sur un projet réel, je souhaite également indiquer comment j’ai tenté de traiter, de la manière la plus élégante possible, toutes ces problématiques dans Sylius.

PHP 8.1 en détails

Deja 6 mois (on est en mai 2022 !) que PHP 8.1 est arrivé, avec sa hotte pleine de nouvelles fonctionnalités et de modernisations.

Enumeration, propriétés en lecture seule, objets par défaut, types interesectionnels : n'en jetez plus ! Nous passerons en revue tout cela, et les inévitables incompatibilités de migration, pour que vous puissiez préparer votre code dès maintenant.

Gare, PHP 8.2 est déjà bien avancé !

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 :