Glossaire
- :=
- La déclaration courte de Go. Dans un nouveau bloc, elle déclare tous les noms à sa gauche, même si une variable de ce nom existe hors du bloc.
- La fonction d’annulation qui reste nil
- `%` en C
- Le reste d’une division entière. Son signe suit l’opérande de gauche : -7 % 3 vaut -1, et -6 % 3 vaut 0.
- Un reste de zéro
- `argv[2]`
- Le troisième mot de la commande. Pour
MOVE key 5, c’est la chaîne"5". - Une base nommée notanumber
- `atoi`
- Une fonction C qui transforme le début d’une chaîne en
int. Elle s’arrête au premier caractère qui n’est pas un chiffre, et renvoie 0 s’il n’y a aucun nombre. Elle ne signale jamais d’erreur. - Une base nommée notanumber
- `Date.new(year, month, -1)`
- En Ruby, le jour -1 désigne le dernier jour du mois.
.daydonne alors le nombre de jours du mois. - Le dernier jeudi de février
- `drain`
- Lance tous les jobs en attente d’une classe de worker jusqu’à ce qu’il n’en reste aucun.
drain_allfait de même pour toutes les classes. - drain_all de Sidekiq boucle sur un job hors de sa file par défaut
- `IMPLEMENT_var_keylen_cipher`
- Arguments de la macro, dans l’ordre : algorithme, nom en majuscules, mode, mode en majuscules, flags, bits de clé, bits de bloc, bits d’IV, bloc ou flux. Les bits de clé donnent la longueur de clé par défaut et le nom de la table, comme dans
cast5128cbc_functions. - CAST5 en CFB et OFB prend une clé de 8 octets par défaut
- `selectDb`
- Place le client sur la base
id. Elle ne renvoieREDIS_ERRque siidest sous 0 ou pas sous le nombre de bases (16 par défaut). - Une base nommée notanumber
- `sigchain_push_common`
- Pose le même handler pour SIGINT, SIGHUP, SIGTERM, SIGQUIT et SIGPIPE.
- Deux handlers de signal posés dans le mauvais ordre
- AbortSignal
- Un objet que tu passes à
fetchdanssignal. Quand il se déclenche, le fetch s’arrête et sa promesse est rejetée. - Un fetch sans timeout
- Alias
- Un nom dans la table
[alias]d’une config Cargo qui se déplie en une autre commande, icicargo fooencargo a b. - Une erreur de parsing de config affichée comme commande inconnue
- asyncio.gather
- Prend plusieurs tâches et renvoie un seul future, terminé quand toutes le sont. Le code l’attend avec
await. - Un await manquant devant asyncio.gather
- Auto-commit
- Un mode de connexion où chaque requête est validée seule. L’incrémenteur le coupe pour faire le commit à la main.
- Une connexion jamais fermée, à cause d’un throw dans finally
- Backtracking
- Quand une partie de la regex échoue, le moteur revient en arrière et essaie une autre façon de faire correspondre les parties d’avant.
- Le backtracking d’une regex sur un e-mail trop court
- Binding
bind:currentTime={x}gardexet la position de lecture synchronisés, dans les deux sens.setécrit la position dansx.- Un écouteur timeupdate resté sur un élément audio retiré
- Bit de flag
- Un bit de l’en-tête de l’objet qui note un fait sur lui, testé avec
flags & SOME_FLAG. - Des hashs jamais libérés
- BOM
- Byte order mark : le caractère U+FEFF que certains éditeurs écrivent tout au début d’un fichier UTF-8. Il est invisible, mais compte pour un caractère dans une chaîne JavaScript.
- Les offsets après le retrait d’un BOM
- BYDAY
- La partie d’une règle de répétition (RRULE) qui nomme le jour.
BYDAY=4THest le quatrième jeudi,BYDAY=-1THle dernier. - Le dernier jeudi de février
- CAST5
- Un chiffrement par bloc avec des blocs de 64 bits et des clés de 5 à 16 octets. Sa clé normale fait 16 octets (128 bits).
- CAST5 en CFB et OFB prend une clé de 8 octets par défaut
- Centimes
- La plus petite unité du prix. Stripe veut
unit_amounten nombre entier de centimes : 19,99 $ donne 1999. - Erreur de virgule flottante dans la conversion des dollars en centimes
- Clé de cache
- La chaîne sous laquelle une valeur est rangée. Deux bouts de code qui construisent la même clé lisent et écrivent la même valeur.
- Une clé de rate limit sans le contrôleur
- Closure
- Une fonction littérale qui utilise des variables du code autour d’elle. Elle lit la variable elle-même, pas une copie.
- Une variable de boucle capturée par une goroutine
- Coercition de type
- JavaScript qui convertit tout seul une valeur vers un autre type, par exemple un tableau en chaîne.
- Un tableau qui passe pour une sévérité
- Colonne
- Une position dans une ligne. Le parseur HTML qu’utilise Vite compte les colonnes à partir de 1.
- Décalage d’un entre une colonne et un offset
- Condition de sortie
- Le test qu’une boucle vérifie avant chaque tour, ici
jobs.any?. La boucle ne s’arrête que si le corps le rend faux. - drain_all de Sidekiq boucle sur un job hors de sa file par défaut
- Content script
- Du code d’extension qui tourne dans la page inspectée et parle au reste de l’extension avec
chrome.runtime.sendMessage. - Un fetch sans timeout
- context.CancelFunc
- La fonction renvoyée par
context.WithCancel. L’appeler ferme le canalDone()du contexte et libère ce qui l’attend. - La fonction d’annulation qui reste nil
- controller_path
- Le nom de chemin d’un contrôleur :
"sessions"pourSessionsController,"admin/users"pourAdmin::UsersController. - Une clé de rate limit sans le contrôleur
- Copie superficielle
- Une copie d’un conteneur qui garde les mêmes objets internes que l’original. Modifier un dict interne via la copie le modifie pour les deux.
- Un dict d’en-têtes partagé par toutes les sessions
- Coroutine
- Une fonction définie avec
async def. L’appeler ne l’exécute pas jusqu’au bout ; il faut l’awaitou la planifier. - Un await manquant devant asyncio.gather
- CRI
- Container Runtime Interface : l’API gRPC que le kubelet utilise pour démarrer, arrêter et supprimer des conteneurs dans un runtime comme containerd.
- Un StopContainer idempotent dans containerd
- DataSource
- L’objet Java qui distribue les connexions à la base. C’est souvent un pool qui en réutilise un nombre fixe.
- Une connexion jamais fermée, à cause d’un throw dans finally
- Débordement circulaire
- Quand un entier de taille fixe dépasse sa plus grande valeur, il repart de la plus petite au lieu de lever une erreur.
- Débordement d’entier dans un compte d’éléments NumPy
- defaults
- Un dict au niveau du module
requests/defaults.py. Il est créé une fois, à l’import du module, et chaque session le lit. - Un dict d’en-têtes partagé par toutes les sessions
- Déréférencement nul
- Lire un champ à travers un pointeur nul. En C++, ça fait en général planter le processus.
- La vérification une ligne trop tard
- Double-checked locking
- Tester un champ sans le verrou, puis prendre le verrou et le tester à nouveau avant de construire la valeur.
- Double-checked locking : affecter le champ en dernier
- Drop
- Rust lance le destructeur d’une valeur quand elle disparaît. Affecter une nouvelle valeur à un champ détruit l’ancienne sur cette ligne.
- Un waker détruit pendant que le mutex du JoinSet est tenu
- ECB, CBC, GCM
- Trois modes de chiffrement : ECB n’utilise pas d’IV, CBC exige un IV de longueur fixe, GCM accepte des IV de longueurs différentes.
- Un IV vide qui passait le contrôle de longueur
- Embarqué
- Un objet dont les données tiennent dans sa propre case, donc il n’y a rien d’autre à libérer.
- Des hashs jamais libérés
- ERR_FAIL_NULL_MSG
- Une macro de Godot qui affiche le message et sort de la fonction quand le pointeur est nul.
- La vérification une ligne trop tard
- errdefs.IsNotFound
- Une fonction de containerd qui dit si une erreur signifie « cet objet n’existe pas ».
- Un StopContainer idempotent dans containerd
- explicitTimeout
- La prop
durationsous forme de nombre, ounullquand le composant n’a pas deduration. - Une durée de 0 qui animait quand même
- Façade
- Une classe Laravel aux méthodes statiques, qui transmet chaque appel à un objet tiré du conteneur de services.
- Une locale qui reste en place
- Falsy
- Une valeur que
iftraite comme fausse :0,"",NaN,null,undefinedetfalse. - Une durée de 0 qui animait quand même
- Fin exclusive
- Un offset de fin qui pointe juste après le dernier caractère.
slice(start, end)s’arrête déjà avantend. - Un caractère après le template
- finally
- Un bloc Java qui s’exécute après
tryetcatch, qu’ils se terminent normalement ou en lançant une exception. - Une connexion jamais fermée, à cause d’un throw dans finally
- Formatage de plage
- Formater seulement le code entre
rangeStartetrangeEnd, ce que les éditeurs utilisent pour « formater la sélection ». - Les offsets après le retrait d’un BOM
- Future
- Un objet pour un résultat qui existera plus tard.
await futuremet l’appelant en pause jusqu’à ce que le résultat soit là. - Un await manquant devant asyncio.gather
- getTransitionInfo
- Lit la transition ou l’animation CSS de l’élément et renvoie son type et sa durée totale.
- Une durée de 0 qui animait quand même
- GIL
- Le verrou global de l’interpréteur CPython. Un seul thread exécute du bytecode Python à la fois, mais l’interpréteur peut changer de thread entre deux instructions.
- Des noms de thread tirés d’un compteur sans verrou
- Goroutine
- Une fonction que Go exécute en même temps que le code qui l’a lancée, avec
go func() { ... }(). - Une variable de boucle capturée par une goroutine
- Groupe atomique `(?>...)`
- Une fois le groupe trouvé, le moteur ne revient jamais dedans pour essayer autre chose.
- Le backtracking d’une regex sur un e-mail trop court
- Heure d’été (DST)
- Les horloges avancent d’une heure au printemps et reculent d’une heure à l’automne. Le jour où elles reculent dure 25 heures sur l’horloge locale.
- Heure d’été et rotation mensuelle des logs
- Idempotent
- Un appel qu’on peut répéter : l’envoyer deux fois laisse le même état et donne le même genre de réponse que l’envoyer une fois.
- Un StopContainer idempotent dans containerd
- if let Ok(x)
- Exécute le bloc seulement si la valeur est
Ok. SurErr, le bloc est sauté et l’erreur est perdue. - Une erreur de parsing de config affichée comme commande inconnue
- Index du sitemap
- Le fichier
/sitemap.xmlde tête. Il pointe vers chaque section et, depuis Django 4.1, donne à chacune une date de dernière modification. - Un sitemap sans rien dedans
- Initialisation paresseuse
- Construire une valeur la première fois qu’on la demande, puis la réutiliser.
- Double-checked locking : affecter le champ en dernier
- int32
- Un entier signé sur 32 bits. Sa plus grande valeur est 2 147 483 647, soit 2**31 moins 1.
- Débordement d’entier dans un compte d’éléments NumPy
- itertools.count
- Un itérateur qui produit 0, 1, 2, etc. Son
__next__est écrit en C, donc un appel compte comme une seule étape pour le code Python. - Des noms de thread tirés d’un compteur sans verrou
- IV
- Vecteur d’initialisation : des octets en plus que le chiffrement mélange au premier bloc. Le mode CBC en veut un exactement de la taille d’un bloc, 8 octets pour DES.
- Un IV vide qui passait le contrôle de longueur
- L’opérateur ?
- Sur
Err, renvoie tout de suite l’erreur à l’appelant. SurOk, donne la valeur à l’intérieur. - Une erreur de parsing de config affichée comme commande inconnue
- Leader et follower
- Les membres etcd se mettent d’accord avec Raft. Un membre est le leader (
isPrimary()vaut vrai), les autres sont des followers qui appliquent le même journal. - Un tas de leases que seul le leader etcd vide
- Lease
- Un objet etcd avec une durée de vie. Quand il expire ou est révoqué, les clés qui y sont attachées sont supprimées.
- Un tas de leases que seul le leader etcd vide
- leaseExpiredNotifier
- Un tas d’ID de leases triés par date d’expiration, plus une map de l’ID vers l’élément. Le leader le consulte pour trouver les leases à révoquer.
- Un tas de leases que seul le leader etcd vide
- Lecture-modification-écriture
- Une mise à jour en trois temps : lire la valeur, calculer la nouvelle, l’écrire. Un autre thread peut passer entre deux étapes.
- Des noms de thread tirés d’un compteur sans verrou
- Liste libre
- Les connexions ouvertes qu’aucun appelant ne tient en ce moment, rangées dans
freeConn(2 au plus par défaut). - Une connexion comptée mais jamais rangée
- Liste simplement chaînée
- Une chaîne de nœuds où chacun ne connaît que le suivant. Trouver le dernier nœud oblige à partir du premier.
- Copier une liste en repartant de la tête
- Masquage (shadowing)
- Déclarer dans un bloc intérieur une variable qui porte le même nom qu’une variable extérieure. Dans le bloc, le nom désigne la nouvelle, et l’extérieure ne change pas.
- La fonction d’annulation qui reste nil
- max()
- La fonction intégrée de Python qui renvoie le plus grand élément. Sur une séquence vide, elle lève ValueError, sauf si tu passes
default=. - Un sitemap sans rien dedans
- Mode factice
Sidekiq::Testing.fake!: les jobs poussés vont dans des tableaux en mémoire au lieu de Redis, pour qu’un test puisse les inspecter et les lancer.- drain_all de Sidekiq boucle sur un job hors de sa file par défaut
- multiply.reduce
- Le produit de tous les éléments dans NumPy. Il convertit d’abord l’entrée en tableau, qui stocke les int Python comme des entiers NumPy de taille fixe.
- Débordement d’entier dans un compte d’éléments NumPy
- Mutex
- Un verrou qu’un seul thread tient à la fois. Celui-ci ne peut pas être pris deux fois par le même thread : le second
lock()attend pour toujours. - Un waker détruit pendant que le mutex du JoinSet est tenu
- numOpen
- Le compte des connexions ouvertes du pool. Avec
SetMaxOpenConns(n), les appelants attendent dès qu’il atteint n. - Une connexion comptée mais jamais rangée
- O(n²)
- Un travail qui croît comme le carré de la taille de l’entrée : deux fois plus d’entrées, quatre fois plus de travail.
- Copier une liste en repartant de la tête
- OAuth
- Un parcours de connexion où l’utilisateur s’identifie sur un autre site, qui renvoie ensuite des jetons à l’application.
- Une tâche OAuth encore en attente à l’arrêt
- Off-by-one
- Un compte faux d’exactement un, souvent parce qu’une valeur part de 0 et l’autre de 1.
- Décalage d’un entre une colonne et un offset
- Offset
- Une position dans tout le fichier, comptée en caractères à partir de 0.
- Décalage d’un entre une colonne et un offset
- Offset
- Une position dans le texte, comptée en caractères à partir de 0.
- Les offsets après le retrait d’un BOM
- Ordinal
- La position d’un jour de la semaine dans son mois : premier, deuxième, troisième, quatrième ou dernier.
- Le dernier jeudi de février
- os.path.abspath
- Rend un chemin absolu et résout les segments
..comme du texte. Pour/tmp/proj/../x, il renvoie/tmp/x. - Un dossier voisin au nom plus long
- Path traversal
- Un nom de fichier avec des segments
.., ou un chemin absolu, qui fait sortir une écriture ou une lecture du dossier prévu. - Un dossier voisin au nom plus long
- Plan
- Un bloc de pixels d’une image, par exemple la luminance ou une composante de couleur. Une ligne contient
widthvaleurs. - Un reste de zéro
- Pointeur de queue
- Un pointeur gardé sur le dernier nœud, ou sur son champ
next, pour qu’un ajout n’ait pas à parcourir la liste. - Copier une liste en repartant de la tête
- Pool de connexions
- Un ensemble de connexions ouvertes à la base, que les appelants empruntent et rendent, pour ne pas en ouvrir une à chaque requête.
- Une connexion comptée mais jamais rangée
- Précédence
- Les règles qui disent comment les opérateurs se groupent sans parenthèses. Dans
a && b && c, tout doit être vrai ; une parenthèse décide à quelle partie appartient une condition. - Un IV vide qui passait le contrôle de longueur
- Progress
- Un flottant qui vaut 1 sur la première image de la transition et 0 sur la dernière.
- Un reste de zéro
- Promesse en attente
- Une promesse ni résolue ni rejetée. Le code chaîné dessus avec
.thenne s’exécute pas. - Un fetch sans timeout
- Provider
- Dans OpenSSL 3, le module qui implémente un algorithme.
legacyprov.cassocie des noms comme "CAST5-CFB" à ces tables de fonctions. - CAST5 en CFB et OFB prend une clé de 8 octets par défaut
- Quantificateur paresseux `+?`
- Prend d’abord le moins de caractères possible, puis un de plus à chaque fois que le moteur revient sur lui.
- Le backtracking d’une regex sur un e-mail trop court
- Rate limit
- Un plafond sur le nombre de requêtes d’un client dans une fenêtre de temps. Au-delà, le serveur répond 429.
- Une clé de rate limit sans le contrôleur
- RegExp.prototype.test
- Renvoie true quand le motif correspond. Convertit d’abord en chaîne un argument qui n’en est pas une.
- Un tableau qui passe pour une sévérité
- Result
- Une valeur Rust qui vaut soit
Ok(valeur), soitErr(erreur).CargoResult<T>est le nom que Cargo donne à unResultavec son type d’erreur. - Une erreur de parsing de config affichée comme commande inconnue
- RID
- Un handle que Godot utilise pour désigner un objet détenu par un serveur, ici une texture. Un RID vide ne désigne rien.
- La vérification une ligne trop tard
- Rotation des logs
- Renommer le fichier de log en cours et en commencer un nouveau, ici une fois par jour, par semaine ou par mois.
- Heure d’été et rotation mensuelle des logs
- Schematic
- Un script de l’Angular CLI qui modifie les fichiers d’un projet, ici pour migrer les templates vers le nouveau control flow.
- Un caractère après le template
- setdefault
d.setdefault(k, v)rangevsousksikmanque. Il range l’objet lui-même, pas une copie.- Un dict d’en-têtes partagé par toutes les sessions
- Setter
- Une méthode
set nom(valeur). Elle s’exécute quand le code écritplan.amountDollars = .... - Erreur de virgule flottante dans la conversion des dollars en centimes
- Sévérité
- La façon dont ESLint signale une règle : désactivée, avertissement ou erreur, écrite 0, 1, 2 ou sous forme de chaîne.
- Un tableau qui passe pour une sévérité
- sigchain
- La pile de handlers de signal de git.
sigchain_pushpose un handler au sommet,sigchain_popretire celui du sommet. Quand un signal arrive, c’est le handler du sommet qui s’exécute. - Deux handlers de signal posés dans le mauvais ordre
- SIGPIPE
- Le signal qu’un processus reçoit quand il écrit dans un pipe que plus personne ne lit. Par défaut, il tue le processus.
- Deux handlers de signal posés dans le mauvais ordre
- Singleton
- Un objet que le conteneur crée une fois et rend à chaque appelant jusqu’à la fin du processus.
- Une locale qui reste en place
- Sitemap
- Une classe Django qui liste les URL d’une section du site.
items()renvoie les objets, etlastmod(item)la date de dernière modification d’un objet. - Un sitemap sans rien dedans
- Sortie d’attribut
- Une valeur placée dans
attr="..."qui contient un". Le guillemet ferme l’attribut trop tôt et le reste est lu comme du nouveau HTML. - Un guillemet dans l’ID d’un titre
- Source span
- Les offsets de début et de fin d’un élément dans le texte du template, tels que le parseur Angular les enregistre.
- Un caractère après le template
- st_table
- La table de hachage que Ruby utilise pour les gros hashs. Ses entrées vivent dans de la mémoire allouée avec malloc, hors de l’objet.
- Des hashs jamais libérés
- store.increment
- Ajoute 1 au compteur rangé sous une clé dans le cache, le crée s’il manque, et renvoie la nouvelle valeur.
- Une clé de rate limit sans le contrôleur
- SuspiciousOperation
- L’exception Django pour une entrée qui ressemble à une attaque. Ici, elle arrête l’extraction.
- Un dossier voisin au nom plus long
- Sweep
- La phase du ramasse-miettes qui parcourt les objets morts et les libère.
- Des hashs jamais libérés
- Table des matières (ToC)
- La liste des liens vers les titres d’une page. Hugo construit son HTML dans
tocBuilderen écrivant des chaînes dans un buffer. - Un guillemet dans l’ID d’un titre
- Tâche de fond
- Une tâche créée avec
hass.async_create_background_task. Sa docstring dit qu’elle "Will be automatically cancelled on shutdown" (sera annulée à l’arrêt). - Une tâche OAuth encore en attente à l’arrêt
- Tâche suivie
- Une tâche créée avec
hass.async_create_task. Home Assistant la garde dans son ensemble_tasks. Si elle tourne encore à la dernière étape de l’arrêt, il écrit un avertissement et l’annule. - Une tâche OAuth encore en attente à l’arrêt
- tap()
- Le helper Laravel
tap($value, $callback)appelle le callback avec la valeur, puis renvoie la valeur. - Une locale qui reste en place
- teardown
- Svelte appelle la fonction passée à
teardownquand l’effet est détruit, ici quand le bloc{#if}retire l’élément. - Un écouteur timeupdate resté sur un élément audio retiré
- template.HTMLEscapeString
- Une fonction Go qui remplace
<,>,&,'et"par des entités HTML, pour que le navigateur les lise comme du texte. - Un guillemet dans l’ID d’un titre
- TextEncoder
- L’API du navigateur et de Node dont la méthode
encodetransforme une chaîne en ses octets UTF-8, dans unUint8Array. - Dimensionner un buffer UTF-8 avec la longueur de la chaîne
- Time.mktime
- Construit un
TimeRuby à partir de l’année, du mois, du jour (et plus) dans le fuseau local. - Heure d’été et rotation mensuelle des logs
- timeupdate
- Un événement qu’un élément média déclenche quand sa position de lecture change.
- Un écouteur timeupdate resté sur un élément audio retiré
- Unité de code UTF-16
- Ce dont sont faites les chaînes JavaScript.
str.lengthcompte ces unités, pas des octets. - Dimensionner un buffer UTF-8 avec la longueur de la chaîne
- UTF-8
- Un encodage où un caractère ASCII prend 1 octet et les autres 2 à 4.
世en prend 3. - Dimensionner un buffer UTF-8 avec la longueur de la chaîne
- Variable de boucle
- Le
id, cdefor id, c := range. Avant Go 1.22, la boucle les déclarait une seule fois et les écrasait à chaque tour. - Une variable de boucle capturée par une goroutine
- Virgule flottante
- La façon dont JavaScript stocke tous les nombres : en binaire, avec environ 16 chiffres significatifs. La plupart des fractions décimales, comme 0,99, n’ont pas de valeur binaire exacte.
- Erreur de virgule flottante dans la conversion des dollars en centimes
- volatile
- Un modificateur de champ Java : une écriture dans le champ est vue tout de suite par chaque thread qui le lit.
- Double-checked locking : affecter le champ en dernier
- Vue Uint8Array
new Uint8Array(buffer, offset, n)est une fenêtre denoctets sur une mémoire existante.setcopie dedans et lève une erreur si la source est plus longue.- Dimensionner un buffer UTF-8 avec la longueur de la chaîne
- Waker
- Une poignée qu’une future donne à celui qui devra la réveiller. Un exécuteur peut créer son propre type de waker, avec son propre code
Drop. - Un waker détruit pendant que le mutex du JoinSet est tenu