KeiruaProd

I help my clients acquire new users and make more money with their web businesses. I have ten years of experience with SaaS projects. If that’s something you need help with, we should get in touch!

2024

Solving TennisKata

Excel-driven Pokemon Go

godot pixel shader transition

some itertools tips

Godot for game development

2023

Un jeu pour apprendre les additions

Automatic transcription of audio/video files

String art with tool and code

Analyse de la sécurité d’une app de messagerie

Getting started with Python+Kafka

une semaine avec chatgpt

The murmur hashing algorithm

Collectible cards, old cigarettes and Python

The multiway number partitioning problem

Clés RSA Github compromise: que faire

Prompts ChatGPT

The street picture problem

AWK: Removing duplicates in a file without sorting it

Solving dadagram

Fast Python with multiprocessing

nix first steps: compiling a C++ program with SDL dependency. [en]

Algorithmes de mémorisation par répétition espacée

FizzBuzz

Some nice lectures

simple python progressbar

Un REPL avec readline

Using direnv with Python

Extension firefox

Integrer ChatGPT avec Python

Envoyer une notification discord

Utiliser ChatGPT pour générer les résumés de tous mes blogposts

Better SSH public key usage

Solving python 3.10 _bz2 dependency error on ubuntu [en]

Utiliser Just plutôt que Make [fr]

Agir lors des modifications sur un fichier [fr]

2022

En défense du code dégueu [fr]

Le premier mois de Musk en tant que PDG de Twitter [fr]

Solving Countle/Countdown/Le compte est bon [en]

Quelques bonnes pratiques de sécu à mettre en place tôt. [fr]

Améliorer les perfs d’un programme avec Rust. [fr]

Batch resizing images using a Nautilus extension [en]

Casser un hash de CTF avec z3

Puzzle : Je ne sais pas quels sont les chiffres [fr]

RevealJS pour des prez vite fait [fr]

Daniel Vassallo et son "portfolio des petits paris" [fr]

Bannière Twitter dynamique [fr]

Documentez les étapes manuelles de vos scripts

Des hooks pre-commit pour git avec… pre-commit

Redirection HTTP vers HTTPS [fr]

Rétrospective des articles 2021 [fr]

Zettelkasten [fr]

twitter advanced search cheatsheet

Python’s context manager

It’s not that trivial to rotate a N*N matrix 90° clockwise

2021

A comprehensive guide to AoC 2021 day 24

Dynamic programming [en]

Preparing Adventofcode in Python 3/3, algorithms and data structures

Preparing Adventofcode in Python 2/3, standard library

Preparing Adventofcode in Python 1/3, parsing

Slack notifications from Python [en]

Dynamic temporary demo environment with clever cloud

Traveling salesman problem with 2-opt [en]

Load test with Locust [en]

Summer articles [en]

How to learn stuff quickly [en]

Learning How to Learn: my notes [en]

Github Cli [en]

Replicating "Heavens above" satellite charts [en]

Sending yourself a notification with a Telegram bot [en]

PostgreSQL snippet: multiple counts in one query

Solving Redis out of memory issues [en]

Postgis: ST_Distance vs ST_DWithin

Automatic W3C validation in CI

Making encrypted cloud copies of your critical files

Some cron tips [en]

Elo vs Bradley-Terry model

The birthday problem

Redirecting all pages from one domain to another [en]

Let’s retrieve an image after its deletion on Slack. [en]

Automated history of Celestrak satellite data [en]

Penrose tiling [en]

Resizing all the images in a directory [en]

Arbitrary Code Executions in popular video games. [en]

Mandelbrot fractal in Rust [en]

One Makefile to rule them all [en]

My notes about Advent of Code 2020 (Python/Rust) [en]

Cool things Z3 can help with [en]

Un simple jeu de cartes et autres nombres inconcevables [fr]

Writing a large technical book, before and after [en]

Making a chess OCR with python, opencv and deeplearning techniques [en]

Les lois d’Akin de conception spatiale [fr]

You don't need microservices. [en]

2020

Better odds against my 3-year-old kids at its favorite game [en]

Running a shell command on multiple machines using ansible [en]

Ajout d'une supervision telegraf/influxdb/grafana [fr]

Importing a partial table backup using a temporary PostgreSQL table [en]

Useful Unix debugging commands [en]

Ramanujan, Z3 and the number 1729 [en]

Solving the 8 queens problem [en]

The Gauss-Legendre algorithm [en]

Listing DelayedJob cron jobs and schedules [en]

Including the build version inside a rust binary [en]

Better pull requests with GIFs from screen recordings [en]

Probabilités de victoire au Tarot Africain avec la méthode de Monte Carlo [fr]

Automatiser la recherche de bugs avec git bisect [fr]

How to remember your life [en]

10 prérequis pour l'évaluation d'applications de «suivi de contact Coronavirus» [fr]

2019

Freelance informatique dans le service public, je suis en grève [fr]

Mangeoires à oiseaux [fr]

The sinking of the Vasa in 1628, a lesson in project management [en]

2018

Quelques suggestions de livres pour développeurs [fr]

Cool stuff from Rustfest [en]

An intro to rust [en]

2017

Starting Rust: where to learn, what to install [en]

2016

Tester (correctement !) la présence d’une clé dans un tableau en PHP [fr]

Apprendre un nouveau langage pour étendre sa culture technique [fr]

2015

strace pour résoudre les problèmes de librairies [fr]

Caractéristiques d'un projet qui va réussir [fr]

Un hook pre-commit pour empêcher de soumettre des fichiers PHP invalides [fr]

Rencontre avec une entreprise libérée [fr]

Faire une vidéo timelapse d’un écran sous Ubuntu [fr]

2014

Les calendriers de l’avent du web [fr]

Retours sur le ForumPHP 2014 [fr]

Guide de survie pour le partage de terminaux avec Terminator [fr]

Le boostrapping d’applications grâce au freelancing [fr]

Quelques astuces PostgreSQL pour faire des statistiques simples [fr]

2013

Ressources pour écrire un plugin Sublime Text 3 [fr]

Corriger le raccourci de partage de vue de SublimeText [fr]

Présentation d'Apache Bench [fr]

Ne plus se planter de console entre sa VM, la préprod, la prod... [fr]

Des alias git utiles [fr]

De retour de TEDx Paris Universités 2013 [fr]

Github quick file navigation [fr]

Déploiement, fin de semaine et bon sens

Identifier l'origine d'une régression avec git bisect

2012

Plein de veille grâce à JS.Everywhere (1/2)

3 éléments pour des librairies de meilleure qualité

Développer son activité de freelance

De bonnes bases avec Silex et HTML5Boilerplate

Bilan du startup weekend Bordeaux 2012

Bien utiliser les commandes console de Symfony2

Retours sur le Startup Weekend Toulouse 2012

Ecrire une commande console pour Symfony2

2011

Symblog : chapitres 1 et 2 en français