99.01 — Glossaire#

Terminologie utilisée dans l’écosystème Ocarina. Sources d’origine entre parenthèses.

Railway Oriented Programming (ROP)#

TermeDéfinition
ROP (Wlaschin, F#)Pattern fonctionnel : succès et échec sont deux rails parallèles ; un échec bascule le calcul sur le rail d’échec, où il reste (court-circuit).
Result[T]Union discriminée Ok[T] | Fail. Erreur portée comme valeur, pas comme exception levée.
Ok[T]Wrapper de succès, value: T.
FailWrapper d’échec, error: Exception.
is_ok, is_failTypeGuard qui narrowent un Result[T] vers Ok[T] ou Fail.
Action[T]Thunk[Result[T]] — fonction sans argument qui rend un Result[T].
ActionStart[T]État initial du builder d’action ROP. Attend .failure(...).
ActionFailure[T]Après .failure(...). Attend .success(...).
ActionSuccess[T]Après .success(...). Attend .execute().
ActionChain[T]Après .execute(). Porte has_failed: bool et result: Result[T]. Permet .then(...).
NeutralActionStart[T], NeutralActionFailure[T], NeutralActionSuccess[T]États inertes du rail d’échec. Bouchonnent en ne faisant plus rien.
ChainRunner[T]Encapsulation paresseuse d’un ActionChain. Exécutée par .run().
drive_pageAlias sémantique opinionated pour chain_actions. « Prendre le contrôle d’une page ».
match_pagewhenBranchement conditionnel. First-match wins.
create_actPrimitive de bas niveau pour créer act (pas de test). Wrappée par le projet utilisateur.
act (côté projet)Wrapper utilisateur de create_act avec hook on_failure spécifique au projet. Permet de représenter un pas de test.

ISTQB / vocabulaire professionnels du test#

TermeDéfinition
ISTQBInternational Software Testing Qualifications Board. Organisme professionnel du test logiciel.
Test cycleNiveau le plus haut. Une exécution complète.
Test campaignNiveau sous le cycle. Non défini directement dans l’ISTQB mais reconnu dans le vocabulaire des testeurs de métier.
Test suiteNiveau sous la campagne. Une collection de tests exécutables.
Test caseUn cas de test. Unité atomique.
Test stepUn pas de test. Action atomique dans un test case.
Smoke testVérification minimale qui prouve que le système est en marche. Si échec, le reste est inutile.
Setup / TeardownPré-condition / post-condition d’un test.

Ocarina (orchestration)#

TermeDéfinition
Test[Driver]Test ISTQB. Métadonnées + scenario factory + fragments + skip.
TestSuite[Driver]Suite ISTQB. Parallélisation (thread pool), saturation, filtrage IDs, retries.
TestCampaign[Driver]Campagne. Séquence de suites avec config workers partagée.
TestCycle[Driver]Cycle ISTQB. Smoke (avec modes fail-fast vs wait-for-all) + main.
TestExecutor[Driver]Exécute une seule tentative d’un test. Stateless.
TestFlow[Driver]Boucle de rejeu (1+max_retries) avec backoff linéaire.
TestRunner[Driver]Sortie de Test.spawn(driver, logger). Agrégateur de chain_runners + setup + teardown + watchers.
Scenario[Driver] (frozen dataclass)Encapsule test_chain, setup, teardown, watchers.
TestChainSequence[ChainRunner[Any]]. La séquence à exécuter pour appliquer le test.
Watcher[Driver]Daemon thread pour observer quelque chose en plus sur un test. Callback périodique.
SaturationMécanisme de clonage aléatoire de tests pour atteindre max_workers. Copies nommées [COPY N] <name> (ou [+N] selon convention).
Transient errorsTuple d’exceptions qui déclenchent un rejeu.
max_retries_per_testNombre de rejeux. Par défaut, 8 (« 9 vies comme un chat 🐱 »).
autoscreen_on_failCapture automatique de captures d’écran lors d’un pas de test en échec.

Ocarina (DSL invariants)#

TermeDéfinition
validate(value, name="...")Entry-point du DSL d’invariants.
ValidationStartBlock[T]État initial. Attend .assert_that(...).
ValidationAssertBlock[T]Après .assert_that(...). Accepte .assert_that, .otherwise, .then, .execute.
.assert_that(predicate)Ajoute un AND logique.
.otherwise(predicate)Ajoute un OR logique. Combine via _any_of.
.then(new_value)Change la valeur en cours dans la chaîne. Conserve les erreurs accumulées.
.execute()Exécute la chaîne, retourne un _ValidationResult (inerte tant qu’on n’appelle pas .raise_if_invalid()).
chain_validations(*)Merge plusieurs ValidationAssertBlock en un seul.
InvariantViolationErrorException levée par les prédicats.
AggregateInvariantViolationErrorAgrégation de plusieurs InvariantViolationError. Levée par .raise_if_invalid().
DuplicatesErrorSous-classe d’InvariantViolationError levée par has_unique_elements.
BusinessInvariantValidator.createFactory pour invariants métier.
FrameworkInvariantValidator.createFactory pour invariants framework.

Ocarina (infra + ports)#

TermeDéfinition
POMBaseABC framework-agnostic. Méthodes verify + get_current_title.
SeleniumTitleMixinMixin Selenium-specific. Implémente get_current_title et type _driver: WebDriver.
WebDriversPool[Driver]Pool thread-safe de drivers. Sémaphore + Queue (la QUEUE putain !) + warmup avec watchdog.
WarmupTimeoutErrorLevée par pool.warmup() quand ça coince.
DriverBuilder[Driver]Builder qui gère le profile tmp dir et produit (driver, dispose).
BuiltWebDriver[Driver]tuple[Driver, Effect] — driver + dispose.
Screenshotter[TDriver]Utilitaire de capture thread-safe. Burst mode, healthcheck.
ScreenshotterConfig[TDriver]Config (frozen dataclass) : output_dir, file_ext, health_check, save_full_page, etc.
ActCounterInterface. Compte les act appelés par tentative.
ThreadsBasedActCounterImplémentation thread-local d’ActCounter.
ILoggerPort (ABC) de logging. Méthodes : debug, info, warning, error, critical, success, test_name, exception, raw, set_prefix, set_domain_taxonomy, cleanup.
ITakeScreenshot[Driver]Protocol (driver, logger, category) -> None.
PrintLoggerFileLoggerPrintAndFileLoggerMutedLogger4 implémentations canoniques d’ILogger.
driver_healthcheck(driver)Ping driver.title ; lève DriverDiedError si LE DRIVER EST DEAD.
DriverDiedErrorException levée par driver_healthcheck.
PageVerificationErrorException levée par POM.verify quand la page n’est pas la bonne.
NoMatchingBranchErrorException levée par match_page quand aucun when ne match.

Ocarina (opinionated)#

TermeDéfinition
CliBuilderBuilder déclaratif au-dessus d’argparse. Agrégation des erreurs.
CliArgDéclaration d’un argument CLI.
CliStore[TKeys]Store write-once des valeurs CLI parsées. TKeys: Literal[...] pour autocomplétion.
_CliField[T]Field write-once avec validator.
phantom_validateNo-op validator pour les fields qui n’ont pas besoin de validation supplémentaire.
CliStoreSingletonSingleton autour de CliStore.
create_selenium_auto_cli_store()Factory qui dispatch par OS.
bootstrap(test_cycle, run_plugins, post_exec)Point d’entrée canonique.
run_plugins(*plugins, exceptions_logger)Exécute les plugins en parallèle si N>1.
pretty_print_resultsPlugin d’affichage des résultats dans le terminal (ANSI).
generate_docx_proofPlugin de créations de preuves de test au format DOCX.
generate_json_resultsPlugin qui retranscrit les mêmes résultats que pretty_print_results, mais au format JSON.
timingContext manager qui mesure la durée.

Programmation fonctionnelle#

TermeDéfinition
EffectCallable[[], None] — fonction sans argument ni retour, déférée.
Thunk[T]Callable[[], T] — fonction sans argument, déférée.
ClosureFonction qui capture un environnement.
FoldreduceRéduction d’une séquence à une seule valeur (catamorphisme).
TypeGuardPEP 647 — annotation qui narrow un type côté type checker.
Discriminated unionUnion de types disjoints, discriminée par un test (typiquement isinstance).
Sealed unionDiscriminated union dont tous les variants sont @final.
@finalPEP 591 — annonce qu’une classe ne peut pas être sous-classée (pas de covariance infinie).
SelfPEP 673 — type de retour qui réfère à la classe instanciée (pas la classe déclarée).
ProtocolPEP 544 — type structurel ; tout objet avec la bonne shape est utilisable.
PEP 695Generics syntax class Foo[T]: (Python 3.12+).

Vocabulaire de l’auteur#

TermeSens
SlipologueNéologisme. Celui qui prétend « tout savoir » sans pratique. Pollue les discussions techniques avec des vues de l’esprit. Nous casse les couilles à utiliser ChatGPT ou Wikipédia pour toujours avoir réponse à tout en faisant comme s’il parlait d’un sujet qu’il maîtrise alors que non.
Vues de l’espritConcept imaginaire ; vision théorique inapplicable.
Boîte blancheCode auditable, lisible, sans logique cachée. Opposé à boîte noire.
Donnée bruteCode source, fichiers, formats simples.
Astrologie de la programmationPatterns ésotériques sans bénéfice mesurable.
In the Lulzboat, salute, bitch, and show some respect.Citation de YTCracker — #antisec (2011), hymne officiel de l’Operation AntiSec. Voir ../12-manifesto-deciphered/01-sourced-citations.md
Putains de skids, putains de normiesMarqueur identitaire IRC / EFnet.

Scène hacker (chapitre 12)#

TermeDéfinition
AntiSec movement (1999)Mouvement opposé à l’industrie de la cybersécurité et à la full disclosure. Refus de publier exploits / vulnérabilités. Cibles : SecurityFocus, Packet Storm, mailing list Bugtraq, etc.
Operation AntiSec (2011)Résurrection du mouvement par LulzSec + Anonymous. 50 jours de hacks (mai-juin 2011).
LulzSecGroupe d’hackers actif mai-juin 2011. Splinter d’Anonymous. Manifeste « we do it for the lulz ». Arrestations en 2012.
The LulzboatMétaphore identitaire de LulzSec. ASCII art de bateau pirate signant leurs communiqués.
SabuHector Monsegur, leader LulzSec, soulevé par le FBI en juin 2011.
TopiaryJake Davis, spokesperson LulzSec.
YTCrackerBryce Case Jr. (né 1982). Rappeur nerdcore, ancien black hat (NASA Goddard 1999), fondateur de Digital Gangster (forum, 2005).
NerdcoreSous-genre du hip-hop dont les paroles sont réellement pour les nerds (code, hacking, sci-fi, math). Inventé par MC Frontalot (2000).
Digital GangsterForum hacker fondé par YTCracker en 2005 (digitalgangster.com). 36 000 membres au pic. Source de plusieurs hacks emblématiques (Paris Hilton, Miley Cyrus, Twitter Obama, etc.).
NerdRap Entertainment SystemAlbum fondateur de YTCracker (2005). Beats sur OSTs NES, lyrics Nerdcore.
Darknet DiariesPodcast de Jack Rhysider sur l’histoire de la cybersécurité. L’épisode 78 (Nerdcore) est consacré à YTCracker. Transcript : https://darknetdiaries.com/transcript/78/
Zone-HArchive publique des defaces de sites web (fondée 2 mars 2002 par Roberto Preatoni / Sys64738, basée en Estonie). Tableau d’affichage de la scène grey hat 2002-2015.
IRCInternet Relay Chat (1988). Protocole de chat textuel multi-utilisateurs en client/serveur. Médium social central des hackers 1993-2012.
EFnetEris-Free Network. Réseau IRC historique (1990). Centre de la scène warez, 0day, phreakers 1996-2008.
Channel (#name)Salon IRC.
skidscript kiddieHacker qui exécute des scripts qu’il ne comprend pas. Insulte.
normieUtilisateur lambda, non-initié. Insulte.
lamerVariante BBS-era de skid.
gr33tzGreetings, liste du crew, en bas d’un deface.
zineE-zine, magazine underground souvent ASCII.
VX Underground (VXUG)Repository public de samples de malware (fondé ~2019 par smelly_vx). Sysadmin originel : Yung Innanet / kayos.
Yung Innanet / kayosSysadmin originel de VX Underground et musicien. Décédé le 18 octobre 2025. Le Holy Book cite directement les paroles de son morceau true colors (SoundCloud), signé « (btw: RIP, DG descendant…) ».
YogyaCarderLink (YCL)Collectif d’hackers indonésiens (Yogyakarta), début 2000s. Deux mantras récurrents sur leurs defaces : « We Can Do All What You Can’t Do. » et Don't fuck with us.
Honker (红客)Red hacker chinois. Hacker patriote, motivé idéologiquement. Apparu après les émeutes Indonésie 1998.
Vilains but not MonstersDistinction morale au cœur de la scène hackers : un Vilain confronte le pouvoir, un Monster persécute des faibles. Les véritables passionnés détestent les monsters (qui sont souvent d’anciens harcelés reproduisant le mal subi).
DEF CONConférence hacker annuelle à présent à Las Vegas (autrefois au Caesars Forum).
BOFH (Bastard Operator From Hell)Série de fiction par Simon Travaglia (Nouvelle-Zélande), publiée sur Usenet dans les années 90 puis sur The Register. Archétype du sysadmin qui méprise ses utilisateurs. Source du vocabulaire PEBKAC, RTFM, ID-10-T error.
UsenetSystème distribué de newsgroups. Médium fondateur de la culture hacker.
ShodanMoteur de recherche pour devices connectés à internet (caméras IP, ICS, IoT, serveurs ouverts). Fondé par John Matherly. shodan.io
ViolVocalCommunauté francophone (mi-2000s) de prank callers / harceleurs téléphoniques organisés sur forum + serveur Mumble/TeamSpeak. Pratique du SIP spoofing, streams publics des appels, doxing, usurpations d’agents de police pour consulter des TAJ sans habilitation, etc. Fermé après poursuites. Cas francophone de la cruauté underground.
4chan / /b/Imageboard fondé par moot (Christopher Poole) en 2003. /b/ = board sans règles, sans archive, anonymat total. Matrice d’Anonymous (2006-2008) et de la culture meme moderne. Communauté orchestrant régulièrement du harcèlement, ayant particulièrement dégradé la santé de Terry A. Davis.
AnonymousEntité collective émergée de 4chan /b/ vers 2006-2008. Op Chanology (Scientologie 2008), Op Tunisia (2011), Op Sony (2011). Coordination IRC.
DoxingPublication d’informations personnelles d’une cible dans le but de lui nuire.
SwattingFaux appel d’urgence (souvent SIP-spoofed) déclarant un crime grave à l’adresse de la victime, déclenchant l’envoi du SWAT. Cas mortels documentés.
OSINTOpen Source Intelligence. Collecte d’informations à partir de sources publiques.
OPSECOperations Security. Maintien rigoureux de l’anonymat opérationnel sur la durée.
HoneypotFaux serveur / faux compte / faux leak appâtant les attaquants pour les détecter. Outil défensif de la scène.
Snitch / FedPoucaveagent fédéral undercover. Détection prioritaire dans toute communauté underground.
Prompt injectionInsertion de contenu malveillant dans le contexte d’un LLM pour détourner son comportement. OWASP LLM01:2025. Premier rang du Top 10 LLM.
MCP (Model Context Protocol)Protocole standard Anthropic (2024) pour exposer tools et resources à un LLM. Chaque MCP server tiers ajoute une surface d’attaque.
Hard-won rulesConventions internes à un projet documentées dans CLAUDE.md après leçons coûteuses. Évite aux LLMs de répéter les erreurs déjà rencontrées.

Idéologie Ocarina#

TermeDéfinition
Vilain (au sens hacker)Identité revendiquée du hacker souverain qui agit hors institutions, par opposition aux conventions et au branding corporate. Le Vilain confronte le pouvoir mais respecte les plus faibles.
Monster (au sens hacker)Celui qui exploite techniquement sa compétence pour persécuter des personnes vulnérables (harceleur, doxeur, etc.). Ennemi structurel de la vraie scène hackerss.
Culture du toolingConviction que les bons outils techniques (Nmap, Wireshark, Metasploit, Burp, sqlmap, et al.) bien écrits par des petites équipes valent mille présentations marketing.
Tribal loyalty (scène hackers)Loyauté absolue intra-communauté + méfiance extrême envers l’extérieur. Tests d’admission longs, vouching par membres établis, excommunication brutale en cas de trahison.
Eyes everywhereHyper-vigilance opérationnelle apprise dans le contexte underground (admin IRC légalement responsable des actions de ses canaux).

Industrie / contre-modèles#

TermeDéfinition
InfopreneurEntrepreneur dont le produit est de l’information vendue : formations, e-books, masterminds. Modèle américain (Dan Kennedy, Russell Brunson), importé en France via Tugan Bara.
CopywritingArt d’écrire des textes de vente persuasifs. Cœur de métier infopreneur. Largement automatisable par IA depuis 2023.
FunnelTunnel de vente : contenu gratuit → produit front-end (97€) → produit phare (997-4997€) → coaching premium.
Marketing UndergroundProgramme phare de Tugan Bara (2018-2023). Posture « bad guy » assumée.
Tugan Bara / Arnaud LabossièreArchétype français du modèle infopreneur 2018-2024. HEC dropout. Vendu Tugan.ai en 2024. Finalement le seul infopreneur qui a vraiment expliqué la profession à toute une communauté de la scène francophone.
MRRMonthly Recurring Revenue. Somme mensuelle facturée aux clients sous abonnement. Indicateur SaaS central.
ARRAnnual Recurring Revenue. Somme annuelle récoltée par la vente d’un SaaS.

IA, ML, RL#

TermeDéfinition
LLMLarge Language Model. Modèle Transformer pré-entraîné sur un large corpus. Claude, GPT, Gemini, Llama, Mistral.
TransformerArchitecture introduite par Attention Is All You Need.
Foundation modelModèle pré-entraîné réutilisé pour de multiples tâches via fine-tuning ou prompting.
RL (Reinforcement Learning)Apprentissage par interaction avec un environnement, guidée par un signal de reward. Sutton & Barto 1998.
Constitutional AI (CAI)Méthode d’alignement Anthropic (Bai et al., 2022). Le modèle critique et révise ses propres réponses selon une constitution écrite.
ProbePrimitive d’apprentissage empirique pour l’IA.
llms.txt, llms-full.txtStandard Jeremy Howard (fast.ai), 2024. Index Markdown court (llms.txt) + doc full concaténée (llms-full.txt) pour ingestion par agent.
SKILL.mdPermet à un agent IA de plugger une compétence projet.
CLAUDE.mdDonne ensemble de règles à Claude Code.