99.01 — Glossaire#
Terminologie utilisée dans l’écosystème Ocarina. Sources d’origine entre parenthèses.
Railway Oriented Programming (ROP)#
| Terme | Dé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. |
Fail | Wrapper d’échec, error: Exception. |
is_ok, is_fail | TypeGuard 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_page | Alias sémantique opinionated pour chain_actions. « Prendre le contrôle d’une page ». |
match_page / when | Branchement conditionnel. First-match wins. |
create_act | Primitive 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#
| Terme | Définition |
|---|---|
| ISTQB | International Software Testing Qualifications Board. Organisme professionnel du test logiciel. |
| Test cycle | Niveau le plus haut. Une exécution complète. |
| Test campaign | Niveau sous le cycle. Non défini directement dans l’ISTQB mais reconnu dans le vocabulaire des testeurs de métier. |
| Test suite | Niveau sous la campagne. Une collection de tests exécutables. |
| Test case | Un cas de test. Unité atomique. |
| Test step | Un pas de test. Action atomique dans un test case. |
| Smoke test | Vérification minimale qui prouve que le système est en marche. Si échec, le reste est inutile. |
| Setup / Teardown | Pré-condition / post-condition d’un test. |
Ocarina (orchestration)#
| Terme | Dé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. |
TestChain | Sequence[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. |
Saturation | Mécanisme de clonage aléatoire de tests pour atteindre max_workers. Copies nommées [COPY N] <name> (ou [+N] selon convention). |
Transient errors | Tuple d’exceptions qui déclenchent un rejeu. |
max_retries_per_test | Nombre de rejeux. Par défaut, 8 (« 9 vies comme un chat 🐱 »). |
autoscreen_on_fail | Capture automatique de captures d’écran lors d’un pas de test en échec. |
Ocarina (DSL invariants)#
| Terme | Dé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. |
InvariantViolationError | Exception levée par les prédicats. |
AggregateInvariantViolationError | Agrégation de plusieurs InvariantViolationError. Levée par .raise_if_invalid(). |
DuplicatesError | Sous-classe d’InvariantViolationError levée par has_unique_elements. |
BusinessInvariantValidator.create | Factory pour invariants métier. |
FrameworkInvariantValidator.create | Factory pour invariants framework. |
Ocarina (infra + ports)#
| Terme | Définition |
|---|---|
POMBase | ABC framework-agnostic. Méthodes verify + get_current_title. |
SeleniumTitleMixin | Mixin 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. |
WarmupTimeoutError | Levé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. |
ActCounter | Interface. Compte les act appelés par tentative. |
ThreadsBasedActCounter | Implémentation thread-local d’ActCounter. |
ILogger | Port (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. |
PrintLogger / FileLogger / PrintAndFileLogger / MutedLogger | 4 implémentations canoniques d’ILogger. |
driver_healthcheck(driver) | Ping driver.title ; lève DriverDiedError si LE DRIVER EST DEAD. |
DriverDiedError | Exception levée par driver_healthcheck. |
PageVerificationError | Exception levée par POM.verify quand la page n’est pas la bonne. |
NoMatchingBranchError | Exception levée par match_page quand aucun when ne match. |
Ocarina (opinionated)#
| Terme | Définition |
|---|---|
CliBuilder | Builder déclaratif au-dessus d’argparse. Agrégation des erreurs. |
CliArg | Dé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_validate | No-op validator pour les fields qui n’ont pas besoin de validation supplémentaire. |
CliStoreSingleton | Singleton 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_results | Plugin d’affichage des résultats dans le terminal (ANSI). |
generate_docx_proof | Plugin de créations de preuves de test au format DOCX. |
generate_json_results | Plugin qui retranscrit les mêmes résultats que pretty_print_results, mais au format JSON. |
timing | Context manager qui mesure la durée. |
Programmation fonctionnelle#
| Terme | Définition |
|---|---|
Effect | Callable[[], None] — fonction sans argument ni retour, déférée. |
Thunk[T] | Callable[[], T] — fonction sans argument, déférée. |
Closure | Fonction qui capture un environnement. |
Fold / reduce | Réduction d’une séquence à une seule valeur (catamorphisme). |
TypeGuard | PEP 647 — annotation qui narrow un type côté type checker. |
Discriminated union | Union de types disjoints, discriminée par un test (typiquement isinstance). |
Sealed union | Discriminated union dont tous les variants sont @final. |
@final | PEP 591 — annonce qu’une classe ne peut pas être sous-classée (pas de covariance infinie). |
Self | PEP 673 — type de retour qui réfère à la classe instanciée (pas la classe déclarée). |
Protocol | PEP 544 — type structurel ; tout objet avec la bonne shape est utilisable. |
PEP 695 | Generics syntax class Foo[T]: (Python 3.12+). |
Vocabulaire de l’auteur#
| Terme | Sens |
|---|---|
| Slipologue | Né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’esprit | Concept imaginaire ; vision théorique inapplicable. |
| Boîte blanche | Code auditable, lisible, sans logique cachée. Opposé à boîte noire. |
| Donnée brute | Code source, fichiers, formats simples. |
| Astrologie de la programmation | Patterns é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 normies | Marqueur identitaire IRC / EFnet. |
Scène hacker (chapitre 12)#
| Terme | Dé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). |
| LulzSec | Groupe d’hackers actif mai-juin 2011. Splinter d’Anonymous. Manifeste « we do it for the lulz ». Arrestations en 2012. |
| The Lulzboat | Métaphore identitaire de LulzSec. ASCII art de bateau pirate signant leurs communiqués. |
| Sabu | Hector Monsegur, leader LulzSec, soulevé par le FBI en juin 2011. |
| Topiary | Jake Davis, spokesperson LulzSec. |
| YTCracker | Bryce Case Jr. (né 1982). Rappeur nerdcore, ancien black hat (NASA Goddard 1999), fondateur de Digital Gangster (forum, 2005). |
| Nerdcore | Sous-genre du hip-hop dont les paroles sont réellement pour les nerds (code, hacking, sci-fi, math). Inventé par MC Frontalot (2000). |
| Digital Gangster | Forum 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 System | Album fondateur de YTCracker (2005). Beats sur OSTs NES, lyrics Nerdcore. |
| Darknet Diaries | Podcast de Jack Rhysider sur l’histoire de la cybersécurité. L’épisode 78 (Nerdcore) est consacré à YTCracker. Transcript : https://darknetdiaries.com/transcript/78/ |
| Zone-H | Archive 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. |
| IRC | Internet Relay Chat (1988). Protocole de chat textuel multi-utilisateurs en client/serveur. Médium social central des hackers 1993-2012. |
| EFnet | Eris-Free Network. Réseau IRC historique (1990). Centre de la scène warez, 0day, phreakers 1996-2008. |
Channel (#name) | Salon IRC. |
skid / script kiddie | Hacker qui exécute des scripts qu’il ne comprend pas. Insulte. |
normie | Utilisateur lambda, non-initié. Insulte. |
lamer | Variante BBS-era de skid. |
gr33tz | Greetings, liste du crew, en bas d’un deface. |
zine | E-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 / kayos | Sysadmin 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 Monsters | Distinction 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 CON | Confé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. |
| Usenet | Système distribué de newsgroups. Médium fondateur de la culture hacker. |
| Shodan | Moteur de recherche pour devices connectés à internet (caméras IP, ICS, IoT, serveurs ouverts). Fondé par John Matherly. shodan.io |
| ViolVocal | Communauté 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. |
| Anonymous | Entité collective émergée de 4chan /b/ vers 2006-2008. Op Chanology (Scientologie 2008), Op Tunisia (2011), Op Sony (2011). Coordination IRC. |
| Doxing | Publication d’informations personnelles d’une cible dans le but de lui nuire. |
| Swatting | Faux 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. |
| OSINT | Open Source Intelligence. Collecte d’informations à partir de sources publiques. |
| OPSEC | Operations Security. Maintien rigoureux de l’anonymat opérationnel sur la durée. |
| Honeypot | Faux serveur / faux compte / faux leak appâtant les attaquants pour les détecter. Outil défensif de la scène. |
| Snitch / Fed | Poucave / agent fédéral undercover. Détection prioritaire dans toute communauté underground. |
| Prompt injection | Insertion 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 rules | Conventions 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#
| Terme | Dé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 tooling | Conviction 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 everywhere | Hyper-vigilance opérationnelle apprise dans le contexte underground (admin IRC légalement responsable des actions de ses canaux). |
Industrie / contre-modèles#
| Terme | Définition |
|---|---|
| Infopreneur | Entrepreneur 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. |
| Copywriting | Art d’écrire des textes de vente persuasifs. Cœur de métier infopreneur. Largement automatisable par IA depuis 2023. |
| Funnel | Tunnel de vente : contenu gratuit → produit front-end (97€) → produit phare (997-4997€) → coaching premium. |
| Marketing Underground | Programme phare de Tugan Bara (2018-2023). Posture « bad guy » assumée. |
| Tugan Bara / Arnaud Labossière | Arché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. |
| MRR | Monthly Recurring Revenue. Somme mensuelle facturée aux clients sous abonnement. Indicateur SaaS central. |
| ARR | Annual Recurring Revenue. Somme annuelle récoltée par la vente d’un SaaS. |
IA, ML, RL#
| Terme | Définition |
|---|---|
| LLM | Large Language Model. Modèle Transformer pré-entraîné sur un large corpus. Claude, GPT, Gemini, Llama, Mistral. |
| Transformer | Architecture introduite par Attention Is All You Need. |
| Foundation model | Modè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. |
| Probe | Primitive d’apprentissage empirique pour l’IA. |
| llms.txt, llms-full.txt | Standard Jeremy Howard (fast.ai), 2024. Index Markdown court (llms.txt) + doc full concaténée (llms-full.txt) pour ingestion par agent. |
| SKILL.md | Permet à un agent IA de plugger une compétence projet. |
| CLAUDE.md | Donne ensemble de règles à Claude Code. |