Développeur en freelance basé à Marseille, je fais du développement back-end / front-end et de l’admin systèmes. J’utilise ce blog pour partager quelques ressources et retours d’expérience. Je travaille aussi avec une designer à MD.

Portfolio. GitHub. Twitter.

Déployer MeiliSearch avec Ansible et Docker

Ansible en quelques mots Ansible est une solution de provisionnement écrite en Python qui s’utilise avec des fichiers YAML. Ces fichiers sont organisés en respectant une certaine structure appelée playbook. Ça fait un peu plus de 5 ans que je m’en sers pour MD ou pour nos clients. Tout est versionné via Git.

De la documentation et des tests en Elixir

Entre Valorant et ma dernière mission freelance, ça fait un peu plus d’un mois que je n’ai pas touché à ce projet en Elixir dont je parlais dans un précédent article. Et ça se voit. Pourquoi ça se voit me direz-vous ? Eh bien, je n’ai rien documenté (bon j’ai des notes de travail mais c’est pas ouf) et surtout je n’ai rien testé.

Travailler sur du code legacy

Il y a quelques mois j’ai travaillé sur une codebase en PHP 5.4 d’environ 2 millions de lignes de code, sans documentation, sans test, en résumé du code legacy. Alors histoire d’avoir bien le contexte, quelques chiffres récupérés via PHPLOC : 5944 classes 40800 fonctions publiques 8008 fonctions privées 25.

Rechercher avec MeiliSearch

Parmi toutes les choses que j’aime faire pendant mon temps libre il y a la bidouille. Le week-end dernier, j’ai commencé une application dans un langage que j’apprécie beaucoup, à savoir Elixir. J’utilise Phoenix LiveView pour le front-end de cette application. J’en parlerai sûrement dans un autre article. Pour faire court, c’est une librairie permettant de construire des applications web en mode SPA avec une communication client-serveur qui passe par WebSocket.

Déployer WordPress en 2020

En ce moment je travaille sur un projet WordPress avec ma pote Maylis et je me dis que c’est l’occasion de présenter un outil pour WordPress que je ne vois pas assez : Wordmove. Wordmove c’est quoi ? C’est un CLI écrit en Ruby pour du déploiement WordPress multi-stage (staging / production).

Introducing MD starters

Three starters As a freelance developer, I work on miscellaneous projects, from the simple single page application to the big API deployed on multiple servers. Some projects share a common environment. For those projects, I ended up creating starters with my teammate Maylis. At the moment we have three starters which come with two environments: development and production.

Monitor an old PHP website

Recently I had to debug an old website I developed in 2011, an ecommerce that runs using PrestaShop 1.4.0.17 (at the time I wrote this post, PrestaShop is in version 1.7.3.3). My client contacted me for an odd bug that occurs sometimes but not all the time. I didn’t want to spend much time on this in order not to charge him too much.

Deploy using GitHub webhooks

A webhook is an HTTP endpoint on your server which can be called to execute tasks. For example in the case of GitHub you can setup that GitHub sends an HTTP POST each time you do something on a specific repository. When your endpoint is called, it will execute a command like running tests, deploying a new version, sending an email, or whatever you want.

Using JS Promises to simplify front-end conceptualization

In February 2014 my coworker Maylis started her project Copier-Créer (means Copy-Create). It’s a daily creative routine about creating images from inspiration. Her work is under a Creative Commons Licence, so feel free to use it for your craft. Last summer, after approximately 850 days, we decided to move Copier-Créer from our portfolio to its own Website.

Create and publish a PHP package

A few weeks ago I had to write a few lines of PHP to interact with MailChimp and Twitter. To do so without writing an ugly index.php with an if-else-like structure, I ended up using Slim. It’s a micro Web framework for PHP that works like Sinatra. And to test my implementation, I used Postman, because it’s simpler than doing a curl or add some JS.