Quand l'obfuscation devient un art : l'ensemble de Mandelbrot

Magazine
Marque
Contenu Premium
Spécialités


Résumé

J'ai déjà parlé d'obfuscation [1], mais il s'agissait alors d'obscurcir l'un de nos programmes. Je vous propose ici une vision plus artistique en décortiquant un code Python très intéressant générant une image de l'ensemble de Mandelbrot.


Tout le monde a déjà vu des codes issus de l'IOCC (International Obfuscated C Code Contest), a minima dans un article de GNU/Linux Magazine [2], ou plus anciennement avec le « coin du vieux barbu » traitant de codes obscurcis dans un sens plus large [3-10]. Ces codes sont impressionnants, car ils produisent un résultat, mais en plus leur code même représente une image en ASCII Art. Seulement ces entrées sont codées en C (comme le nom du concours pouvait le laisser supposer…). Voyons s'il est possible de faire la même chose en Python qui est pourtant un langage bâti pour rendre obligatoire l'écriture d'un code le plus lisible possible.

1. Au début était le lambda-calcul

Tout code peut être écrit sous la forme de fonctions anonymes ou lambda functions. Tirant leur nom du lambda-calcul, ces fonctions s'écrivent sur une ligne en listant les variables après le mot-clé lambda. Prenons l'exemple d'une fonction de somme sum() :

def sum(val_1:int, val_2:int) ->...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

À la découverte des GitHub Actions

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

La discipline du CI/CD est incontournable dans l'industrie du logiciel, tant en open source que dans les projets d'entreprise, avec des outils toujours plus nombreux et efficaces. La maîtrise d'au moins un acteur principal du marché est de plus en plus regardée comme indispensable, ce qui prend tout son sens une fois qu'on a pris l'habitude d'automatiser ces opérations. Démonstration avec les GitHub Actions.

« Je veux ma maquette de satellite » : analyse du format G3DB d’objets 3D en vue de leur impression

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Nous explorons le format G3DB exploité dans nombre de jeux programmés en Java sous Android s’appuyant sur la bibliothèque LibGDX. Cette étude sera l’occasion de découvrir le format universel binaire JSON, conçu pour sa compacité tout en conservant une facilité d’analyse bien connue de ce format de données. Nous aboutirons ainsi à un modèle 3D exploitable dans tout logiciel de conception assistée par ordinateur et conclurons par l’impression des divers éléments de la maquette et son assemblage.

Utilisez les énumérations en Python

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
115
Mois de parution
juillet 2021
Spécialités
Résumé

Il existe dans tout langage des éléments simples, pratiques, mais qui sont pourtant peu employés par les développeurs. En Python, les énumérations se retrouvent dans cette catégorie. Je vous propose dans cet article de découvrir leur intérêt.

Gérez vos projets Python avec Poetry

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

« Un peu de poésie dans un monde de brutes », voilà ce que l'on pourrait se dire en lisant le nom de ce projet… pourtant, c'est à l'usage qu'il montre ses petits muscles et il vous deviendra rapidement indispensable !

Les bizarreries de l’isolation des IPC

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialités
Résumé

Le namespace IPC (Inter-Process Communication) isole les mécanismes de communication interprocessus (sémaphores, mémoire partagée et queues de messages) hérités d’UNIX Système V et bizarrement, seulement une partie de leurs pendants POSIX.