Accélérer Django avec la compression HTTP
Les réponses texte d’une application Django (HTML, JSON, CSS, JavaScript) se compressent très bien : sur une page de test qui affiche un tableau de 100 articles, la réponse passe de 25 321 octets à environ 1 200 octets avec gzip. Dans ce tutoriel, nous allons activer la compression dans Django, vérifier qu’elle fonctionne, puis voir quand la con...
Comment ajouter du cache à une application Spring Boot
Quand une méthode coûte cher (un appel à une API lente, une grosse requête SQL) et qu’elle renvoie souvent le même résultat pour les mêmes paramètres, la mettre en cache évite de refaire le travail à chaque appel. Spring propose pour ça une abstraction de cache à base d’annotations, que Spring Boot configure tout seul avec Caffeine, Redis et d’a...
Comment ajouter du cache à une application Django
Une page qui refait les mêmes requêtes SQL à chaque affichage fait travailler le serveur pour rien. Le framework de cache de Django permet de garder le résultat à plusieurs niveaux : la page entière, un morceau de template ou une simple valeur calculée. Dans ce tutoriel, nous allons configurer un backend de cache, utiliser chacun de ces niveaux,...
Comment dockeriser une application Django
Dans ce tutoriel, nous allons dockeriser une application Django pas à pas : réglages de production, image Docker avec Gunicorn, puis Docker Compose avec une base Postgres.
Pattern matching en Java moderne
Tester le type d’un objet, le caster, puis lire ses champs : en Java, cette suite d’opérations a longtemps demandé beaucoup de code. Avec le pattern matching, complété en Java 21, tout ça se fait directement dans un instanceof ou dans un switch, y compris avec les records et les classes scellées.
Comment transformer un JSON en CSV avec jq
Pour ouvrir des données JSON dans un tableur ou les charger dans une base, il faut souvent passer par du CSV. jq sait produire un CSV correctement échappé en une seule commande, sans écrire de script : voyons comment, du cas le plus simple jusqu’aux fichiers volumineux.
Kubernetes : Programmer des tâches avec CronJob
Pour exécuter une tâche récurrente dans un cluster Kubernetes (une sauvegarde, un rapport, une purge), on utilise un CronJob : l’équivalent d’une ligne de crontab, qui crée un Job à chaque échéance. Voyons comment en écrire un, régler ses principales options (chevauchements, rattrapage, fuseau horaire, historique) et le déboguer quand il ne se l...
Linux : Programmer une tâche avec cron
Pour lancer une commande ou un script tous les jours, toutes les 5 minutes ou au démarrage d’un serveur, l’outil standard sous Linux est cron. Dans ce tutoriel, nous allons voir comment écrire une crontab, dans quel environnement tournent les tâches (c’est là que se cachent la plupart des pièges) et comment trouver pourquoi une tâche ne se lance...
Python : Comment faire des group by
Regrouper des données par clé, le “group by” de SQL, revient tout le temps : compter des occurrences, additionner des montants par catégorie, calculer une moyenne par groupe. Nous allons voir les différentes façons de le faire en Python, de la bibliothèque standard jusqu’à pandas, sur un même jeu de données.
Les maps (Map) en Java
Cinquième partie de notre série sur les collections Java, consacrée aux maps. Une Map associe des clés à des valeurs, comme un annuaire associe un nom à un numéro de téléphone. Nous allons voir comment la remplir et la parcourir, les méthodes arrivées avec Java 8 (merge, computeIfAbsent…) qui évitent bien des if, et comment choisir entre HashMap...
Les files (Queue) et Deques en Java
Quatrième partie de notre série sur les collections Java : les files. Une Queue stocke des éléments jusqu’à ce qu’on les traite, dans leur ordre d’arrivée ou par priorité. Son extension Deque permet d’en ajouter et d’en retirer aux deux bouts. Nous allons voir leurs méthodes, les implémentations à utiliser au quotidien (ArrayDeque, PriorityQueue...
Les ensembles (Set) en Java
Troisième partie de notre série sur les collections Java, consacrée aux ensembles. Un Set garantit qu’un même élément n’y figure jamais deux fois : nous allons voir sur quoi repose cette garantie, comment choisir entre HashSet, LinkedHashSet, TreeSet et EnumSet, et comment calculer une union, une intersection ou une différence.
62 articles, 6 pages.