Révision Glossaire EN

Taille

Yeux

Termine une partie dans un dojo pour débloquer les yeux suivants.

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. .day donne 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_all fait 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 renvoie REDIS_ERR que si id est 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 à fetch dans signal. 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, ici cargo foo en cargo 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} garde x et la position de lecture synchronisés, dans les deux sens. set écrit la position dans x.
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=4TH est le quatrième jeudi, BYDAY=-1TH le 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_amount en 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 canal Done() 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" pour SessionsController, "admin/users" pour Admin::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’await ou 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 duration sous forme de nombre, ou null quand le composant n’a pas de duration.
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 if traite comme fausse : 0, "", NaN, null, undefined et false.
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à avant end.
Un caractère après le template
finally
Un bloc Java qui s’exécute après try et catch, 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 rangeStart et rangeEnd, 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 future met 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. Sur Err, 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.xml de 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. Sur Ok, 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 width valeurs.
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 .then ne s’exécute pas.
Un fetch sans timeout
Provider
Dans OpenSSL 3, le module qui implémente un algorithme. legacyprov.c associe 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), soit Err(erreur). CargoResult<T> est le nom que Cargo donne à un Result avec 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) range v sous k si k manque. 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 écrit plan.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_push pose un handler au sommet, sigchain_pop retire 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, et lastmod(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 tocBuilder en é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 à teardown quand 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 encode transforme une chaîne en ses octets UTF-8, dans un Uint8Array.
Dimensionner un buffer UTF-8 avec la longueur de la chaîne
Time.mktime
Construit un Time Ruby à 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.length compte 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, c de for 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 de n octets sur une mémoire existante. set copie 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