Ripgrep (rg) : chercher rapidement dans le code
Pour retrouver une fonction, un TODO ou une variable de configuration dans un projet, on tape souvent grep -r, qui fouille aussi .git, node_modules et tous les fichiers générés. ripgrep (commande rg) les ignore par défaut : les résultats sont plus pertinents, et ils arrivent beaucoup plus vite sur un vrai projet. Dans ce tutoriel, nous allons vo...
Python : Comment utiliser les f-strings
Depuis Python 3.6, il suffit de préfixer une chaîne par f pour y insérer des variables entre accolades : f"Bonjour {nom}". Nous allons faire le tour de ce qu’on peut mettre dans ces accolades, du simple nom de variable au formatage des nombres, des dates et des colonnes alignées.
Python : Comment envoyer des emails
Python sait envoyer des emails sans rien installer, avec les modules smtplib et email de la bibliothèque standard. Dans ce tutoriel, nous allons envoyer un email texte puis HTML, ajouter des pièces jointes, gérer les erreurs, et voir comment faire la même chose depuis une application Flask.
Optional en Java : éviter les NullPointerException
Une méthode qui renvoie null quand elle ne trouve rien oblige l’appelant à y penser, et le jour où il oublie, c’est la NullPointerException. Optional<T>, introduit en Java 8, rend cette absence visible dans le type de retour. Voyons comment créer et manipuler un Optional, et dans quels cas il vaut mieux s’en passer.
Sed : éditer des fichiers en ligne de commande avec des regex
sed (stream editor) lit un texte ligne par ligne et lui applique des commandes d’édition : remplacer un mot, supprimer ou insérer des lignes. C’est l’outil classique pour modifier un fichier de configuration depuis un script, ou pour retoucher la sortie d’une autre commande dans un pipe.
Les Sealed classes en Java
Les classes scellées (sealed classes), finalisées en Java 17, fixent la liste exacte des types qui ont le droit d’étendre une classe ou d’implémenter une interface. En échange, le compilateur peut vérifier qu’un switch traite tous les cas. Dans ce tutoriel, nous allons voir comment les déclarer et comment les combiner avec les records et le patt...
Java : Comment faire des group by
Compter des ventes par ville, additionner un chiffre d’affaires par produit, trouver la plus grosse commande de chaque client : ce sont des “group by”, comme en SQL. En Java, on peut les écrire avec une boucle et une Map, ou avec les Streams et Collectors.groupingBy, qui couvre la plupart des agrégations en une seule expression.
Records en Java : simplifier vos DTOs
Un DTO en Java, c’est souvent un constructeur, des getters, equals(), hashCode() et toString() : une trentaine de lignes pour trois champs. Les records, arrivés en preview avec Java 14 et finalisés en Java 16, génèrent tout ça à partir d’une seule ligne. Dans ce tutoriel, nous allons voir comment les écrire, les personnaliser et les utiliser ave...
Python : Comment créer une CLI
Dans ce tutoriel, vous allez apprendre à créer une interface en ligne de commande (CLI) en Python.
Déboguer les requêtes SQL et problèmes N+1 dans Django
Le problème N+1 est l’un des pièges les plus courants avec l’ORM de Django : pour afficher une liste d’objets et leurs relations, Django exécute une requête pour la liste, puis une requête par objet. Avec 100 articles, cela fait 101 requêtes SQL là où une ou deux suffisent. Dans ce tutoriel, nous allons voir comment afficher les requêtes exécuté...
Activer les mises à jour de sécurité automatiques sur Ubuntu/Debian
Sur un serveur, un correctif de sécurité ne sert à rien tant qu’il n’est pas installé, et attendre de penser à lancer apt upgrade peut laisser une faille ouverte pendant des semaines. Ubuntu et Debian fournissent pour cela le paquet unattended-upgrades, qui installe automatiquement les mises à jour de sécurité tous les jours. Dans ce tutoriel, n...
Automatiser le nettoyage de données avec pandas
Les données qu’on récupère d’un export CSV, d’un fichier Excel ou d’une API sont rarement propres : valeurs manquantes, doublons, nombres stockés sous forme de texte, majuscules qui changent d’une ligne à l’autre. Dans ce tutoriel, nous allons voir comment repérer et corriger ces problèmes avec pandas, puis regrouper toutes les étapes dans une f...
62 articles, 6 pages.