Tiens, alors ça c’est rigolo ! Le projet deb-books vient de mettre en lumière une pratique assez fascinante, à savoir l’utilisation d’œuvres littéraires complètes comme données de test dans des dépôts Debian.
En général, quand je pense “dépôt Debian”, j’imagine des lignes de code impénétrables et des commentaires cryptiques et chelous qui feraient chialer un intégrateur HTML, mais certainement pas les œuvres complètes de William Shakespeare ou les aventures d’Alice au pays des merveilles.
Et pourtant !
Le codeur Jakub Wilk a découvert que les sources Debian sont une sorte de bibliothèque d’Alexandrie numérique, où se cachent des classiques littéraires vieux de plusieurs siècles. Une sorte de Room of Requirement version geek qui n’attendait que le bon incantateur pour révéler ses trésors.
Mais alors… pourquoi cacher des bouquins dans du code source ??? C’est quoi encore ce délire ?
Et bien c’est là que cet article devient intéressant ^^ !
Ces textes ne sont pas là par hasard ou par fantaisie littéraire de la part des devs Debian. Non, non, non, ils servent de données de test standardisées pour divers algorithmes et outils.
Par exemple, quand vous développez un algorithme de compression comme bzip3, vous avez besoin de textes avec des patterns naturels pour tester l’efficacité de votre algo. Et quoi de mieux que “Les Œuvres Complètes de William Shakespeare” pour ça ? Ce bon vieux Will offre en effet un corpus textuel varié, avec répétitions, richesse linguistique et motifs suffisamment complexes pour mettre votre algo à l’épreuve.
De même, les textes comme “Les Aventures d’Alice au pays des merveilles” de Lewis Carroll se retrouvent dans les tests du projet snappy (compression) et des packages Golang.
C’est top pour tester tout ce qui est :
• Compression sans perte (les patterns naturels du langage humain) • Algorithmes de recherche textuelle (xapian-core) • Outils d’encodage de caractères (icu4j) • Implémentations de structures de données (rust-radix-trie)
Et c’est quand même plus classe de tester son code avec du Shakespeare qu’avec un bon vieux “Lorem ipsum dolor sit amet” répété 10 000 fois !
Voici donc un petit tour d’horizon complet des pépites littéraires triées par années, que Jakub a pu repérer dans cette bibliothèque clandestine :
1610 : La Bible Douay-Rheims (tome 2) - La Seconde Partie de l’Ancien Testament - nichée dans icu4j pour tester l’encodage de textes anciens
1623 : Les Œuvres Complètes de William Shakespeare - utilisées par bzip3 pour les tests de compression
1623 : William Shakespeare : Comme il vous plaira - un autre classique shakespearien présent dans snappy
1667 : John Milton : Le Paradis perdu - dans snappy, encore pour la compression
1730 : Isaac Newton : Optique - pour tester les fonctionnalités de Golang 1.15
1851 : Herman Melville : Moby Dick ou le Cachalot - trouvé dans golang-github-colinmarc-hdfs
1862 : Thomas Carlyle : Histoire de Frédéric II de Prusse. Livre XIII - utilisé dans les tests de xapian-core
1865 : Lewis Carroll : Les Aventures d’Alice au pays des merveilles - le chouchou des développeurs, présent dans plusieurs projets
1869 : Léon Tolstoï : Guerre et Paix - dans les exemples de NVIDIA CUDA (oui, même NVIDIA s’y met !)
1874 : Thomas Hardy : Loin de la foule déchaînée - caché dans ghc pour les tests de performance
1876 : Mark Twain : Les Aventures de Tom Sawyer - utilisé par Golang pour tester la compression
1890 : Oscar Wilde : Le Portrait de Dorian Gray - présent dans libwebsockets pour les tests de recherche
1892 : Arthur Conan Doyle : Les Aventures de Sherlock Holmes - utilisé par Firefox pour ses regex tests
1897 : H.G. Wells : L’Homme invisible - dans icu4j pour la collation de textes
1915 : Arthur Conan Doyle : La Vallée de la peur - encore dans icu4j
1922 : James Joyce : Ulysse - également dans icu4j pour la collation
1949 : George Orwell : 1984 - dans rust-radix-trie, parce que Big Brother is watching your data structures
1992 : James Daly : Workshop on electronic text - dans snappy, le petit nouveau de cette collection
Maintenant, si vous voulez explorer vous-même cette étrange collection littéraire, rien de plus simple.
D’abord, installez les outils nécessaires :
sudo apt install apt-source devscripts
Configurez les sources Debian (si ce n’est pas déjà fait) :
echo “deb-src http://deb.debian.org/debian/ stable main” | sudo tee -a /etc/apt/sources.list sudo apt update
Puis téléchargeons les sources d’un package contenant un texte intéressant, comme snappy qui héberge Alice au pays des merveilles :
apt-get source snappy cd snappy-* find . -name “*.txt”
Et voilà ! Vous devriez trouver plusieurs fichiers .txt, dont certains sont des fameux classiques littéraires. Et pour lire Alice :
less testdata/alice29.txt
Ce qui est fascinant, c’est que ces fichiers servent finalement de corpus standard dans l’industrie du dev. En utilisant toujours les mêmes textes, les développeurs peuvent facilement comparer les performances de leurs algorithmes avec ceux des autres. Comme une sorte de benchmark littéraire informel qui s’est imposé naturellement au fil du temps.
Ces textes ont aussi l’avantage d’être principalement dans le domaine public, ce qui évite les problèmes de licence et ils offrent une variété de styles, d’époques et de complexités linguistiques capables de mettre à l’épreuve différents aspects des programmes open source. Certains diraient que c’est une forme moderne de préservation culturelle, d’autres y verraient simplement une solution pratique à un problème technique. Moi, j’y vois surtout une preuve que les plus barbus des barbus adorent aussi la littérature !
Donc, voilà si vous cherchez des livres gratuits en anglais, y’a quelques trucs ici. loool. Et si vous voulez planquer certains de mes articles dans vos codes sources, n’hésitez pas hein :)
https://korben.info/bibliotheque-cachee-depots-debian-litterature-classique.html
you see this when javscript or css is not working correct