Vue lecture

Profileur mémoire MALT 1.6.0 et support de Python

MALT c'est quoi ?

L'optimisation est une activité connue de bien des développeurs, fouiller, chercher dans son code, pour, peut être, gagner un peu de performance (beaucoup, parfois). Dans cette tâche ardue, face à des codes grandissants, massifs, utilisant de nombreuses bibliothèques externes, un outil central dans ce travail de fourmi : le profileur.

Le profileur fait partie des outils importants pour le développeur qui se soucie des ressources qu'il utilise. Il lui permet de chercher les points chauds dans son code, comprendre le cout de chaque fonction, chaque ligne implémentée. Bien des outils s'intéressent à une chose : bien utiliser votre processeur.

Mais que se passe-t-il si vous rencontrez des difficultés avec l'utilisation de votre mémoire ? Si vous pensez mal utiliser la fonction malloc() du C ou l'opérateur new du C++ ? Si vous avez oublié qu'une de vos variables globales occupe 10 Go (surtout en Fortran) ?

Publié il y a quelques années MALT (licence CeCILL-C) permet de répondre à la question en cherchant toutes les allocations mémoires faites par votre code. Cet outil avait fait l'objet d'un article sur LinuxFR en 2018 lors de sa mise en open source : Profileurs mémoire MALT et NUMAPROF.

Versions 1.6.0

Avancées

Depuis, cet outil fait son chemin avec l'ajout du support de Rust ainsi que nombreuses corrections et ajouts tels que la possibilité de dumper le profile mémoire juste avant que le système ne soit plein.

malt -o dump:on-sys-full-at=80% -o watch-dog=true ./mon_programme

# également :
#  -o dump:on-app-using-rss=10G
#  -o dump:on-app-using-virt=80%
#  -o dump:on-app-using-req=500M

La possibilité de suivre les appels à mmap, mremap, munmap si vous les appelez directement dans votre code au lieu de laisser malloc faire son travail.

Support de python

MALT a initialement été développé dans le contexte du calcul à haute performance — HPC (High Performance Computing) donc surtout pour le C / C++ / Fortran / Rust.

Dans la communauté scientifique, nous voyons dans les laboratoires de plus en plus fleurir l'usage d'un langage à priori bien éloigné de nos prérogatives de performances : Python.

Dans un cadre de calcul scientifique, il est souvent utilisé plutôt comme un wrapper permettant d'appeler et d'orchestrer des bibliothèques en C /C++ / Fortran, elles, performantes. Quoi que l'usage amène aussi à l'écrire de certaines parties du code en Python grâce à Numpy ou Numba pour accéléré la partie calcule sur des tableaux ou autres frameworks d'exploitation des GPU.

La version 1.6.0 de MALT vient d'ajouter le support (encore quelque peu expérimental) natif de Python permettant d'analyser un code pur python ou mix Python / C / C++…. Il s'agit pour l'instant de la première version avec ce support, il reste donc du travail.

Sont supportés les versions Python supérieures à 3.11 ainsi que les environnements Conda / Anaconda / Venv. À l'heure de rédaction de cet article, cela comprend les versions 3.11 à 3.14.

MALT étant orienté C / C++, il ne supporte que Linux comme système d'exploitation. (NdM: la causalité évoquée ici devrait faire réagir des développeurs d'autres systèmes libres notamment :))

Utilisation sur Python

Si la commande malt fonctionne parfaitement, il est recommandé d'utiliser le wrapper malt-python qui adapte quelques configurations spécifiques à Python non encore automatiques.

malt-python ./script.py

# équivalent à 
malt --profile python-default ./script.py

# liste des profiles
malt --profile help

# Afficher le profile
malt-webview ./malt-script-py-6889.json

Profilage rapide

Notons que l'overhead de MALT est important en Python du fait du large nombre d'allocations générées par ce langage et de la méthode de résolution des piles d'appels pour retrouver les lignes dans votre code. Ces détails d'analyse peuvent être désactivés via :

# Désactivé complète de l'analyse des piles
malt-python -p python-no-stack ./my_script.py

# Analyse des piles par "sampling"
malt-python -p python-sampling ./my_script.py

Nouvelle interface

La version 1.6.0 arrive également avec une nouvelle interface graphique avec un code remis à jour
par rapport à sa version originale vieillissante.

Capture annotation python

Profil statique

Pour ceux qui voudraient échanger les profils avec d'autres sur d'autres OS, il est possible depuis la 1.6.0 de générer une version statique des pages de l'interface (hors annotation des sources et arbre d'appel navigable) via :

# Toues les pages possible en statique
malt-webview -static ./report malt-progr-123456.json

# Seulement la page de résumé.
malt-webview -static-summary ./report malt-progr-123456.json

Installation

MALT n'est pas encore disponible dans les distributions classiques, vous devez donc le compiler et l'installer à la main. Le nombre réduit de dépendances obligatoires en fait un outil relativement facile à installer.

On trouvera la procédure dans la documentation du projet.

Documentation

La documentation a été complètement ré-écrite et disponible sur le site officiel : documentation.

Outils similaires pour Python

Découvrir un outil est aussi l'occasion d'en découvrir d'autres. Restons dans le monde du Python, si MALT ne vous convient pas vous trouverez peut-être votre bonheur avec les outils suivants et complémentaires à MALT et eux totalement dédiés au Python toujours pour la mémoire :

  • Memray (Apache Public License 2)
  • Scalene (Apache Public License 2)

MALT se positionne par rapport aux deux présentés en apportant une analyse fine en annotant tout le source code de l'application. Il offre également une analyse des variables globales et TLS coté C/C++/Fortran/Rust.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Après 34 ans, la communauté du noyau Linux dispose enfin d'un plan d'urgence pour remplacer Linus Torvalds, il intervient apparemment après une discussion sur « notre marche inéluctable vers la mort »

Après 34 ans, la communauté du noyau Linux dispose enfin d'un plan d'urgence pour remplacer Linus Torvalds
il intervient apparemment après une discussion sur « notre marche inéluctable vers la mort »

La communauté Linux dispose enfin d'un plan de succession pour le jour où Linus Torvalds prendra sa retraite ou ne sera plus parmi nous. L'initiative est née du Maintainers Summit qui s'est tenu en décembre 2025 et qui s'est terminé par une session sur la planification de la continuité. Elle vise à...

  •  

Zimperium dévoile une vaste campagne mondiale de surveillance Android s’appuyant sur des services cloud de confiance

Arsink RAT exploite Firebase, Google Drive et Telegram pour exfiltrer des données et contourner les mécanismes de détection dans le monde entier. Tribune – zLabs, la division de recherche de Zimperium, spécialiste mondial de la sécurité mobile, annonce avoir identifié une vaste campagne de surveillance Android, baptisée Arsink RAT. Il s’agit d’un cheval de Troie […]

The post Zimperium dévoile une vaste campagne mondiale de surveillance Android s’appuyant sur des services cloud de confiance first appeared on UnderNews.
  •  

Le fossé entre la perception et la réalité de la préparation à l’IA

Selon la quatrième étude de Precisely et LeBow, la confiance dans l’IA dépasse le niveau de préparation, alors que les lacunes en matière d’intégrité des données persistent. L’étude menée par Precisely et le Center for Applied AI and Business Analytics du LeBow College of Business de l’université Drexel révèle des lacunes en matière de maturité […]

The post Le fossé entre la perception et la réalité de la préparation à l’IA first appeared on UnderNews.
  •  

Plus d’un milliard de dollars perdus à cause des fraudes au deepfake en 2025 : les réseaux sociaux pointés du doigt

Selon les experts en cybersécurité de Surfshark, l’année 2025 a été marquée par une explosion massive des pertes liées aux fraudes par deepfake. Les montants ont dépassé 1,1 milliard de dollars, ce qui représente un triplement par rapport aux 360 millions de 2024 et une multiplication par neuf par rapport aux 128 millions enregistrés sur […]

The post Plus d’un milliard de dollars perdus à cause des fraudes au deepfake en 2025 : les réseaux sociaux pointés du doigt first appeared on UnderNews.
  •  

Le GTIG perturbe le réseau proxy IPIDEA utilisé par plus de 550 groupes de menaces

Google Threat Intelligence Group (GTIG) a révélé aujourd’hui avoir collaboré avec l’industrie pour perturber IPIDEA, l’un des plus grands réseaux de proxys domestiques malveillants au monde. Tribune – ​​L’enquête du GTIG a révélé comment IPIDEA a obtenu un accès illicite à des appareils grand public — smartphones, décodeurs et ordinateurs — afin de faciliter de […]

The post Le GTIG perturbe le réseau proxy IPIDEA utilisé par plus de 550 groupes de menaces first appeared on UnderNews.
  •  

Des fraudeurs exploitent les fonctionnalités collaboratives d’Open AI: Kaspersky tire la sonnette d’alarme

Kaspersky a identifié une nouvelle tactique d’escroquerie exploitant la plateforme OpenAI. Des cybercriminels détournent les fonctionnalités de création d’organisations et d’invitation d’équipe pour envoyer des emails frauduleux depuis des adresses OpenAI légitimes. Leur objectif est d’inciter les utilisateurs à cliquer sur des liens malveillants ou à contacter des numéros de téléphone frauduleux.  La campagne de […]

The post Des fraudeurs exploitent les fonctionnalités collaboratives d’Open AI: Kaspersky tire la sonnette d’alarme first appeared on UnderNews.
  •  

JFrog alerte sur deux failles dans n8n (CVSS 9,9 et CVSS 8,5)

Alors que les entreprises accélèrent le déploiement d’agents IA, elles exposent, souvent sans le savoir, de nouvelles surfaces d’attaque. Les chercheurs en sécurité de JFrog ont récemment identifié deux vulnérabilités de type « sandbox escape », l’une critique et l’autre de criticité élevée, au sein de n8n, un outil majeur d’orchestration de workflows d’IA. Tribune – Ces […]

The post JFrog alerte sur deux failles dans n8n (CVSS 9,9 et CVSS 8,5) first appeared on UnderNews.
  •  

Le groupe cybercriminel TA584 enrichit son arsenal et étend ses campagnes à l’échelle mondiale

Les chercheurs de Proofpoint suivent attentivement TA584, l’un des groupes cybercriminels les plus actifs du moment, qui fait évoluer ses tactiques à vitesse grand V. Cette capacité d’adaptation permanente illustre les limites des dispositifs de détection statiques face à des attaquants opérant à un rythme soutenu.   Tribune – En 2025, TA584 a triplé le […]

The post Le groupe cybercriminel TA584 enrichit son arsenal et étend ses campagnes à l’échelle mondiale first appeared on UnderNews.
  •  

Protection des données : une question de processus

À l’occasion de la Journée Européenne de la protection des données, un constat s’impose : protéger les données n’est pas une simple fonction IT, c’est une composante stratégique de la résilience opérationnelle. Tribune par Amine Soussi, Senior Solutions Consultant chez Appian – Depuis l’entrée en vigueur de DORA, les institutions financières l’ont compris : les […]

The post Protection des données : une question de processus first appeared on UnderNews.
  •  

Réfléchissez avant de scanner : ce code QR pourrait être une arnaque

Lors d’attaques de type « quishing », des cybercriminels placent des codes QR contenant des liens malveillants dans des lieux publics, comme des horodateurs ou des restaurants, ou les envoient par courriel. Ces attaques peuvent entraîner des pertes financières, le vol de données personnelles ou la compromission d’appareils, préviennent les experts en cybersécurité. Tribune Planet VPN – […]

The post Réfléchissez avant de scanner : ce code QR pourrait être une arnaque first appeared on UnderNews.
  •  

L’activité IA et Machine Learning (ML) bondit de 91 % en un an : des milliers d’organisations exposées, sans cadre de gouvernance

Rapport Zscaler ThreatLabz 2026 sur les menaces IA – L’adoption rapide de l’IA crée un fossé critique entre innovation et sécurité, obligeant les organisations à adopter une plateforme de sécurité IA fondée sur le modèle Zero Trust. Principales conclusions de l’étude : L’adoption de l’IA s’accélère plus vite que la supervision des entreprises. Malgré une […]

The post L’activité IA et Machine Learning (ML) bondit de 91 % en un an : des milliers d’organisations exposées, sans cadre de gouvernance first appeared on UnderNews.
  •  

Souveraineté et prudence face à l’IA : pourquoi la Journée de la protection des données est plus cruciale que jamais

Le 28 janvier, les organisations et les citoyens du monde entier célèbrent la Journée de la protection des données. Elle agit comme un rappel général de l’importance de protéger les informations personnelles et de renforcer les mesures de protection des données dans un écosystème de plus en plus numérique. Cette journée souligne que la vie […]

The post Souveraineté et prudence face à l’IA : pourquoi la Journée de la protection des données est plus cruciale que jamais first appeared on UnderNews.
  •  

Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys

Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys grâce à un système de commande en libre-service destiné aux employés. L’entreprise annonce l’amélioration des fonctionnalités YubiKey as-a-service avec la commande en libre-service de YubiKey pour les employés, grâce à un nouveau portail client. Tribune — Yubico, une entreprise moderne spécialisée dans la […]

The post Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys first appeared on UnderNews.
  •  

Cyber résilience : Près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la maturité suffisante pour se remettre d’une cyberattaque

Demain, la journée européenne de la protection des données rappellera l’importance de sécuriser nos données. Mais qu’en est-il de notre capacité à les restaurer après une attaque ? Le baromètre mondial de Cohesity sur la cyber-résilience dresse un état des lieux préoccupant : près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la […]

The post Cyber résilience : Près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la maturité suffisante pour se remettre d’une cyberattaque first appeared on UnderNews.
  •  

Dockhand : gestionnaire Docker léger et puissant

Passé par Portainer, Komodo, Dockge et plus récemment Arcane, j’ai toujours pas trouvé LE gestionnaire de Docker qui me convienne : léger, permettant de gérer au moins 3 machines, intuitif tout en restant complet, qui gère les MàJ des Dockers, acceptant directement des compose, etc.

Depuis quelques jours maintenant j’utilise Dockhand (GitHub) et ça coche toutes les cases ; même plus puisqu’il a en option notamment des notifications différenciées et les outils Trivy et Grype pour scanner les dockers à la recherche de vulnérabilités. De mémoire j’avais présenté le 1er y’a des années sur le blog « perdu » effacé par un bon gros blaireau…

Pour le coup je le trouve très bien pensé, avec plus un œil de « geek » que de professionnel si je puis dire. Avec en prime une roadmap et un super Wiki qui va à l’essentiel.

dockhand1
dockhand2

J’ajoute l’environnement local via socket directement.

dockhand3
dockhand4
dockhand5
dockhand6
dockhand7
dockhand8
dockhand9
dockhand10
dockhand11
dockhand12
dockhand13

On peut ajouter des registres avec ses comptes comme DockerHub et GitHub

dockhand14

C’est tout bête mais j’aime bien la possibilité de choisir ses thèmes. Ça me rappelle un peu https://catppuccin.com/ports/

dockhand15
dockhand16

Puisque j’ai lié mon compte GitHub je peux importer mes repos, y compris les privés.

dockhand17

Comme souvent, on peut créer des templates d’installations Docker. J’ai jamais utilisé. Le seul cas, dans mon contexte, où ça pourrait éventuellement être potentiellement utile 2 ou 3 fois (na, pas du tout) ce serait pour créer une template pour les arrs/decypharr etc avec les volumes pré-définis. On est d’accord, j’en n’ai aucune utilité. Mais y’a l’option.

dockhand18

Pour les notifications, je me suis mis Discord. Et on verra après que je ne les utilise que dans le cas des MàJ pour l’instant. Je ne fais pas de MàJ auto pour tous mes Dockers, je suis du coup informé quand y’a une MàJ à faire ou quand celles en automatique ont été réalisées (ou ont échoué).

dockhand20
dockhand19

C’est uniquement en LAN chez moi, j’ai pas testé l’authentification.Idem pour l’ajout de serveurs (Syno et ZimaOS pour l’instant), j’ai utilisé Hawser vu que je suis sur mon réseau.

dockhand21

Et j’obtiens la vue d’ensemble de mes machines

dockhand22

Comme je le disais au début de l’article, j’ai été agréablement surpris de voir l’intégration de Trivy et Grype, sur option, qui permettent de scanner chaque image installée.

Ici l’exemple de mon serveur AdGuardHome que je voulais changer de machine : imthai/adguardhome-unbound-redis

dockhand23
dockhand24

Les vulnérabilités trouvées sont indiquées pour chaque agent avec le lien vers le CVE. Si l’option de scan est globalement activée alors les updates seront aussi scannées. Et on peut à tout moment lancer un scan depuis la liste des images via l’icône de bouclier.

Si tous les Dockers d’une machine seront reportés dans Dockhand, on ne pourra évidemment y éditer que ceux lancés via l’outil.
Pour se faire on peut utiliser la méthode « guidée » où on pull une image et on la gère de manière guidée.

dockhand33
dockhand34
dockhand35
dockhand36

Ou bien on peut importer des stacks/compose depuis un serveur (bouton Adopt) mais j’ai pas testé.

dockhand37

Ou enfin, le plus simple dans mon cas, on peut ajouter son compose directement. On peut même importer son .env
Désolé du caviardage mais j’ai réalisé après coup que je montrais un truc personnel.

dockhand38

Il est également possible d’importer des dépôts depuis les registres configurés

dockhand28

Dockhand permet bien sûr de créer et gérer tous les types de réseaux

dockhand30
dockhand39

Après ces tests, même si c’est toujours en gros développement, je trouve ça plus abouti qu’Arcane, plus simple que Komodo et ça répond plus à mes besoins que Portainer.
C’est une belle découverte que je vais conserver.

Loading

  •  

Data Privacy Day (Journée européenne de la protection des données) : commentaire des experts de Veeam

Rick Vanover, VP of Product Strategy, Veeam Software :   « La véritable résilience des données repose avant tout sur la confiance et le contrôle. À l’occasion de la Journée européenne de la protection des données (Data Privacy Day), nous devons donner aux entreprises les moyens de prendre en charge leurs données, tout en veillant […]

The post Data Privacy Day (Journée européenne de la protection des données) : commentaire des experts de Veeam first appeared on UnderNews.
  •  

IA non homologuée : quels risques pour la gouvernance des données ?

Aujourd’hui, les entreprises attendent des analyses toujours plus rapides et une adoption de l’IA à grande échelle. Les analystes cherchent donc des moyens d’y répondre, y compris lorsque les outils et processus officiels sont trop contraignants ou ne suivent pas le rythme. Sous la pression des délais, certains se tournent vers des outils d’IA non […]

The post IA non homologuée : quels risques pour la gouvernance des données ? first appeared on UnderNews.
  •  

rClone ncdu : quand on ne peut pas installer ncdu sur un OS

Parfois on n’a pas les droits pour installer des utilitaires sur un OS (notamment sur TrueNAS). J’aime particulièrement ncdu qui me permet de rapidement visualiser des tailles de dossiers/montages/backups…

Et on peut donc biaiser en l’utilisant depuis rClone, sur un remote « local » qu’il convient d’ajouter dans rclone.conf

[local]
type = local
rclonencdu

On peut cibler des dossiers comme on le ferait directement depuis l’OS

root@HomeBox[/mnt]# ls
Docker  Fichiers  Usenet
root@HomeBox[/mnt]# rclone ncdu local:Fichiers
rclone ncdu v1.70.2 - use the arrow keys to navigate, press ? for help
-- /mnt/Fichiers ----------------------------------------------------------------------------------------------------------------------------------------------
    2.321Ti [##########] /qbittorrentvpn2
  381.995Gi [##        ] /qbittorrentvpn1
    2.180Gi [          ] /metube
      360Ki [          ] /seedarr
       52Ki [          ] /grabb2rss
e         0 [          ] /books
e         0 [          ] /chaptarrdl
e         0 [          ] /decypharr
e         0 [          ] /rclonecache
e         0 [          ] /riven

Loading

  •  

Comment se crée le grand secret de LinuxFr.org

Le 17 janvier 2026 était publié un journal au titre cryptique « Le grand secret de LinuxFr.org ». Son contenu se limite à pointer un tableau (le voici au format Markdown ou en image) et huit vers énigmatiques par un piètre rimailleur. Et pour renforcer l’aspect mékeskidi, une prédiction à propos d’un second secret.

Comment en est-on arrivé là ? Quel rapport avec LinuxFr.org ? Quel est ce grand secret ? Et le second ? Y avait-il des éléments cachés dans des éléments cachés dans des éléments cachés ? Voilà ce qui sera détaillé dans la suite.

Avertissement : évidemment si vous allez lire la suite, vous gâchez le plaisir de la recherche de la réponse par vous-même. Si vous lisez cette dépêche longtemps après sa publication, la résolution devrait rester inchangée.

    Sommaire

    Il était une fois

    De l’auteur

    Je suis, entre autres choses, un amateur de jeux de société, de jeux de rôle, de petits jeux quotidiens (comme Sutom (MIT) ou Le Mot (GPL v3) ou ClueBySam (gratuit, code propriétaire), de petits jeux de réflexion comme GNOME Sudoku (GPLv3+), habitué à recourir à dcode.fr (CC By) pour coder/décoder sur divers jeux (ou à CyberChef (Apache 2) pour des choses plus orientées sécurité) ou de participer à de longues séries d’énigmes genre calendrier de l’Avent (dernièrement celles du ChocoCervo (gratuit à but caritatif, code propriétaire) ou celles de Professeur Zwolle (payant et code propriétaire).

    Dans la dernière édition de ce dernier, qui s’est terminée mi-novembre 2025, il y avait une grille codée à résoudre et j’avais adoré le principe de cette énigme à tiroirs. Je me suis demandé qu’elle serait la difficulté à en faire une similaire, voire en augmentant la densité de l’information stockée dans la grille. Bref début décembre 2025, j’ai commencé à remplir une grille (entre diverses résolutions de calendriers de l’Avent orientés énigmes/jeux ou bien sécurité).

    Mi-décembre j’avais obtenu le résultat quasi final, mais j’avais du mal à résoudre moi-même l’énigme, donc il fallait réduire sa difficulté et ma motivation a baissé avec une fin d’année compliquée. Et début 2026, en rediscutant avec des amis de l’énigme en préparation, la motivation est revenue, j’ai fini de retester en une soirée, découvert une typo qui a nécessité des corrections de dernière minute, et le lendemain, tout était prêt pour la publication.

    La publication

    J’avais produit mon beau tableau Markdown pour publier directement sur LinuxFr.org (c’était un peu l’idée initiale). J’admire donc le résultat de mon copier-coller. Et le résultat est illisible, car le tableau est assez grand avec 26 lignes et 51 colonnes. Et surtout la dernière ligne contient du texte assez large dans chaque colonne, si on n’affiche pas le texte verticalement. Ce que ne permet pas LinuxFr.org. Bon, de toute façon, c’est nettement plus facile à résoudre dans un tableur genre LibreOffice (MPL 2.0) et j’ai d’ailleurs rapidement suggéré de l’utiliser en réglant la largeur des colonnes sauf la première à 0,7 cm par exemple, et d’ajuster l’affichage du texte en vertical pour la dernière ligne. Voir par exemple le rendu en image.

    Vient ensuite le petit poème (que je vais amputer involontairement initialement en le terminant par « mater » au lieu de « materas », nuisant à la rime certes, mais sans effet sur la résolution) :

    Il y aura du blanc, il y aura du noir.
    Criards sont ⚫ et ⚪, parce qu’ils braillent.
    Qu’un fond de la même couleur leur aille.
    Similitude des drapeaux, vers un espoir ?
    Bariolés ils finiront néanmoins blancs.
    Tout comme la ponctuation qui n’en est pas.
    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Normalement, avec le titre, le tableau bariolé cryptique plein de symboles et les vers bizarres, le lectorat comprend qu’il s’agit d’une énigme à résoudre, pour découvrir un « grand secret du site » donc. Voire un second secret.

    La résolution

    Le picross

    La variété dans le tableau est le signe qu’il y a différentes choses à trouver, donc on peut commencer de différentes façons.

    Les amateurs de jeu ont sans doute déjà reconnu un picross (Wikipédia nous dira qu’il est « connu sous de nombreux autres noms : Crucipixel ; Edel ; FigurePic ; gameLO; Grafilogika ; Griddlers ; Hanjie ; Illust-Logic ; Japanese Crosswords ; Japanilaiset Ristikot ; Japanese Puzzels ; Kare Karala! ; Logic Art ; Logic Square ; Logicolor ; Logigraphe ; Logik-Puzzles ; Logimage ; Nonograms ; Oekaki Logic ; Oekaki-Mate ; Paint by numbers ; Paint Logic ; Pic-a-Pix ; Pikurosu ; Pixel Puzzles ; Puzzle Giapponese ; Puzzle Japones ; Shchor Uftor ; Tsunami ; Pictopix. »). Pour les autres, j’avais donné un indice avec « Une façon de commencer est de regarder ce qui est lisible et qui flèche la résolution. » Dans le coin supérieur gauche, on voit les mots WIKIPEDIA et PICROSS qui sont pointés par des flèches.

    W I K I P E D I A 📖
    B j Y W R y
    🦙 🖱️ K c m l ♾️ l 💾 📬
    💽 🐧 Y W 5 z I G
    P I C R O S S

    Un autre indice était le vers « Il y aura du blanc, il y aura du noir. ». Effectivement on va avoir besoin de cases noires et blanches (plutôt gris clair et foncé pour pouvoir lire le contenu en pratique), et pas que pour le picross. On va aussi s’aider de « ⚫ et ⚪ (…) Qu’un fond de la même couleur leur aille. » (donc les ronds noirs sont des cases noires et les ronds blancs des cases blanches. Et enfin on va s’aider de « drapeaux (…) ils finiront néanmoins blancs », donc les drapeaux sont des cases blanches, et de « Tout comme la ponctuation », dont la « ponctuation » (voire plus loin, mais on parle ici des cases contenant des points et des tirets) est aussi sur des cases blanches.

    Ne reste plus qu’à résoudre le picross. Et on découvre un QR-code 50x25 (en fait 25x25 les cases étant dédoublées). Il a été produit ainsi avec le paquet go-qrcode (licence Expat), -t pour la sortie texte, -s pour la taille, -d pour éviter la bordure :

    qrcode -t -d -s 33 "1 Le site " > qrcode.txt

    Ce qui donne un 33x33 mais 25x25 sans le cadre. Avec une petite moulinette de 48 lignes assez basique nommée pycross-me.py je l’ai converti en un picross. Et une dernière commande vient remplacer les blancs (espaces) par des @ et les noirs par des espaces pour faciliter la lecture dans un tableau ensuite.

    ./pycross-me.py  qrcode.txt |sed -e 's/" "/"@"/g' -e 's/"█"/" "/g' > qrcode.csv

    Le qrcode.txt :

                  ██  ██      ██████  ██              
      ██████████  ██      ████  ██    ██  ██████████  
      ██      ██  ██    ████    ████  ██  ██      ██  
      ██      ██  ████████████    ██████  ██      ██  
      ██      ██  ████  ████    ████  ██  ██      ██  
      ██████████  ██      ██████████  ██  ██████████  
                  ██  ██  ██  ██  ██  ██              
    ████████████████  ██  ████  ████  ████████████████
    ████      ██  ██  ████████████  ██      ████      
          ████  ██  ██████  ████  ██████  ██████  ██  
      ██  ██  ██  ██    ████████  ████  ██  ██  ██    
      ██  ██    ████████    ██████  ██████  ████████  
    ██████  ████  ██    ████  ██    ██  ████      ██  
          ████████    ██  ██  ██      ██    ██████████
      ████  ██    ██          ██  ██████  ██████████  
      ████████  ████    ████████████        ██  ██    
      ██    ████          ██  ██  ██              ██  
    ████████████████      ██    ████  ██████    ██  ██
                  ██████  ██          ██  ██    ████  
      ██████████  ████          ██    ██████  ████    
      ██      ██  ██        ██████            ██  ████
      ██      ██  ██    ██      ████████        ████  
      ██      ██  ██    ████  ██    ██      ████  ██  
      ██████████  ██████    ██████  ██  ██  ████████  
                  ██████████    ████  ██████          
    

    Bref ce qu’il fallait trouver dans cette sous-partie était « 1 Le site ».

    Le coin en haut à gauche

    La partie blanche était celle contenant WIKIPEDIA et PICROSS précédemment évoquée, plus quelques émojis pour décorer (dont un lama déchaîné et un manchot, et divers moyens de stockage d’information).

    On ne conservant que la partie noire dans cette partie on a ce qui suit :

    c m l l b i B k Y W 5 z
    G x ⏹️
    c y B j Y W R y Z
    M K c m l ♾️ l b
    B k Y W 5 z I G x
    c y B
    Y W ⏹️ R y Z X M 🫟 K 🥾

    On peut noter que c’est une des rares zones comportant des minuscules. Et la raison est qu’on peut y lire la phrase cmllbiBkYW5zIGxlcyBjYWRyZXMK répétée deux fois, qui est nettement plus lisible si on devine qu’il s’agit d’un codage base64 :

    $ echo cmllbiBkYW5zIGxlcyBjYWRyZXMKcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    rien dans les cadres
    rien dans les cadres

    Bref ça ne sert à rien.

    Le coin en bas à gauche

    D’abord la partie en blanc :

    B R 🕶️ W P 🐧 P A R 👩🦯
    A I E I
    L L L
    E B 📖
    R 📖 A I 🦙 L L E

    On a donc une dame avec une canne blanche, des lunettes noires, deux fois Braille, un « WP (pour Wikipédia) pareil » (que pour Picross), et les habituels manchot et lama déchaîné. Bref c’est un indice pour une autre partie, mais pas de réponse en vue si je puis dire.

    Alors la partie en noir :

    P 🐙 4 s 🍂 a S s 3 Z c 🌲 l
    i R s
    r L @ u T ♾️ r E
    C 🫟 @ d r e s
    A r i e n À Y t
    o U v
    R m @ i 5 🦀 C o U 🥖 c O u

    Une fois les émojis décoratifs retirés, on peut lire « P4s aSs3Z cl4iR sUr L (sic) @uTrEs C@dres y A rien À Y tRoUvER m@i5 CoUcOu » (la fôte n’était pas voulue) pour « Pas assez clair sur les autres cadres ? Y a rien à trouver, mais coucou. »

    Le coin en haut à droite

    D’abord la partie en blanc :

    T A A H T A A H M
    A A H
    A A H
    A A
    O T I T A A H
    🎶 🎵 I R T I T I T

    Qu’il faut lire comme du code morse avec des tirets longs dits « taah » et des points courts dits « ti » (et des notes de musique pour suggérer les sons).

    taah taah -> M
    taah taah taah -> O
    ti taah ti -> R
    ti ti ti -> S
    ti -> E

    Super, on a « morse » codé en morse. Et on n’a rien appris.

    Puis la partie en noir :

    a W w g b i d 5 I G E g d
    J h
    W 1 l b n Q g c m
    l b i B ⏹️ k Y W 5
    I G 🟦 🔴 🟢 ⏸️ H x
    c y B
    Y 🫟 W R y Z X 🦣 M K 🍄

    Encore des minuscules et encore du base64.

    echo aWwgbid5IGEgdnJhaW1lbnQgcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    il n’y a vraiment rien dans les cadres

    Le cœur de la grille

    Dans la partie en blanc, on peut lire (après remise en forme) « message pour l’intelligence naturelle ou artificielle qui lira cette phrase ce n’est pas ce qu’il faut avec les blancs voir plutôt les non-lettres sinosn (sic) » (la typo est involontaire).

    Dans la partie en noir, on peut lire (après remise en forme) :

    D’abord vient le numéro d’un système avant le systemd.
    Puis une pause car besoin d’espace.
    Ensuite une lettre qui ne doit pas être confondue avec le zéro.
    Suivi d’un langage de programmation orienté données et statistiques.
    Arrive une arobase mais plus simple.
    Puis la première lettre du langage de templates utilisé jusqu’en deux-mille onze > par le site.
    Décidons une nouvelle pause.
    Tout est au point, alors mettons-en deux.

    Les réponses étant 5 (System V), espace, o, r, a, t (Templeet), espace, :.
    L’élément est donc « 5 orat : ».

    Le braille

    On aurait pu faire le braille dès le début, sans résoudre le picross. Il était indiqué par « ⚫ et ⚪, parce qu’ils braillent. »

    Les ronds noirs (avec l’aide des ronds blancs pour savoir où sont situés les 3 lignes et 2 colonnes codant un caractère braille) permettent de lire de haut en bas et de gauche à droite le message « 3 aux contribu » (la première zone code un chiffre, la seconde est entièrement blanche donc vide donc espace, et les suivantes codent des lettres).

    Le morse

    On aurait pu faire le morse dès le début, sans résoudre le picross. Le vers parle de « ponctuation qui n’en est pas » et il faut donc y voir du morse dans les parties comportant des points et des tirets. On peut déchiffrer « 2 vit grâce » (la première zone code un chiffre, la seconde est◽donc espace, et les suivantes codent des lettres).

    Les drapeaux

    On aurait pu faire les drapeaux dès le début, sans résoudre le picross. Le vers parle de « Similitude des drapeaux ». Il faut remarquer que dans le premier groupe de six ils ont en commun un partage en 4. Le second groupe ne comporte que des drapeaux blancs, donc espace. Et chacun des autres groupes va coder une lettre, la première lettre commune des pays concernés. Le message à trouver était donc « 4 tions du lect ».

    Les six

    On aurait pu faire les six dès le début, sans résoudre le picross. Les derniers vers non encore utilisés sont

    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Une petite observation montre qu’il existe une colonne avec six fois le caractère Unicode☝🏼. On cherche donc des mains et des doigts. Et si leurs emplacements dessinent les lettres v, o, u et s. Le message à trouver était donc « 6 vous »

    La solution

    Le grand secret

    Les six éléments trouvés et remis dans l’ordre donne la phrase suivante : « Le site vit grâce aux contributions du lectorat : vous ». Ce qui est effectivement le grand secret de LinuxFr.org, site qui vit par et pour vous. Il figure d’ailleurs en première phrase sur la page pour proposer un contenu.

    Et voici une visualisation de la solution complète de la grille :

    Solution complète

    Un second secret ?

    Au moment où j’ai écrit le journal, je me suis dit que la résolution pourrait être longue et difficile, qu’une personne seule aurait dû mal à la faire, qu’elle aurait besoin de l’aide, des suggestions, des pistes, des idées, des erreurs, des indices et de la motivation apportée par d’autres personnes. Que sur un site contributif les personnes allaient s’entraider et se nourrir des questions/réponses des autres via les commentaires. Et c’est bien, selon moi, le second grand secret derrière LinuxFr.org. Je ne pouvais que pressentir les commentaires qui viendraient par la suite sous le journal d’annonce de l’énigme.

    A posteriori

    De la création d’énigme

    Voici mes quelques impressions retour sur la création d’une telle énigme :

    • je voulais le plus petit QRcode possible pour avoir une petite grille, mais au final elle n’est pas si petite que cela, et cela veut dire des tests longs et pénibles, des soucis d’affichage sur le site à la publication, et une plus grande difficulté pour résoudre ;
    • je suis satisfait de la quantité d’informations que j’ai pu glisser dans la grille : toutes les cases sont utiles à l’exception des émojis servant de diversions pour la partie « les six ». Et cela inclus des indices glissés pour suggérer le picross, le braille et le morse, ainsi que des fausses pistes ;
    • l'Unicode et les emojis offrent vraiment plein de possibilités pour des énigmes basées sur du texte et des symboles ;
    • il reste plus de typos que l’on pense, parce que c’est difficile/pénible à relire. Celle trouvée la veille de la publication aurait pu obliger à tout décaler dans la grille, ce qui aurait pu être très pénible (j’ai pu m’en sortir avec un changement singulier/pluriel qui a limité le décalage à une seule phrase). Et de fait il en reste après les publications (il faut dire qu’il n’y a pas eu d’équipe de bêta-test, personne n’était au courant de la publication) ;
    • la capacité à être résolue a été un souci : je connaissais le QRcode, mais il ne pouvait servir directement de picross. J’ai donc rajouté des zones pour le braille, les drapeaux et le morse avec des couleurs définies, pour qu’il soit faisable. Et ensuite il faut tout retester depuis le début pour vérifier. La quantité de zones ajoutées augmente ou diminue la difficulté de la partie picross ;
    • je n’avais pas conçu en amont plus que « qrcode pour faire un picross » et en ajoutant les autres parties au fur et à mesure, on se retrouve à devoir revoir des cases (c’est complètement le cas de la partie « les six » qui a consisté à trouver où je pourrais dessiner mes lettres et à remplacer des cases déjà remplies d’autres émojis ;
    • à défaut de pouvoir tout recréer/régénérer automatiquement, il est important de garder des notes de ce qui a été fait, des différentes énigmes et des solutions, ça évite de devoir re-résoudre plusieurs fois, et ça aide pour écrire la solution in extenso ensuite ;
    • c’est assez fun de construire les différentes parties, de mettre des indices, des fausses pistes, des blagues semi-privées sur le manchot et le lama déchaîné, ou les dinosaures parce que tout le monde aime les dinosaures ;
    • il y a une certaine fébrilité à la publication (y aura-t-il de l’intérêt ou pas ? Y aura-t-il des résolutions complètes ou non ? Y aura-t-il de l’entraide ?), puis une attente (ça fait déjà 5min que c’est publié et personne n’a tout résolu encore ? Bon 10 min maintenant. Et après quelques heures ?) et enfin un petit jeu sur comment donner des indices sans donner les réponses directement (c’est clairement la meilleure partie, les échanges par commentaires interposés sur le site, et avec Bookynette & Echarp via Signal (AGPLv3).

    Et ensuite ?

    Ce n’est pas la première fois que j’organise un jeu de ce type sur le site, il y a eu plusieurs fois des chasses aux œufs durant des vacances autour de Pâques (en 2020 et 2021). C’est la première fois que cela prend cette forme d’une énigme mystérieuse. Peut-être qu’il y en aura d’autres ainsi, peut-être pas, cela dépend de vos retours, de la motivation et de l’inspiration. Et de l’envie éventuelle de tester d’autres formes (un escape game ? Quelque chose basé sur le site lui-même ? Ou bien en dehors en utilisant des ressources libres genre OpenStreetMap ou OpenFoodFacts ?). De faire quelque chose en partenariat avec l’April, qui a déjà fait un jeu de l’oie et un espace game ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  
    ❌