1. -

    Auteur ici. Je l’ai écrit au départ par frustration de devoir reconfigurer Unbound à la main sans arrêt. C’est encore expérimental et pas audité par un tiers humain, donc à ne pas mettre en prod sensible pour l’instant. Je suis surtout preneur de retours critiques — sur la méthodo de benchmark, la sûreté du parsing dans le hot path XDP, ou le modèle de réplication. Tapez dedans, c’est exactement ce que je cherche.

      1. 1

        Article intéressant, vraiment détaillé.

        Dans la section “Ajouter un dépôt…”, cela aurait été vraiment bien d’aborder extrepo, fast track voire fast forward, qui sont des dépôts Debian alternatifs, gérés officiellement, et qui simplifie la démarche, d’autant que pour extrepo, il suffit d’installer le binaire idoine depuis les dépôts officiels ; “Fast Forward” est intégré à extrepo.

        Voilà, (mes deux cents).

        1. 2

          Excellent !

          Je suis retombé en enfance, avec un délice certain :

          • je me suis vu remanger de cette fameuse soupe
          • je me suis vu faire manger de cette fameuse soupe à notre fille à l’époque

          Je suis retombé en enfance parce que cette histoire, comme celles de mon enfance, à une morale claire, simple, et pose des questionnements pertinents…

          Et ça fait du bien !

          Le parallèle établi, amené de cette manière est… de l’art !
          Servi en multi-langues. Donc plusieurs “cultures” sont concernées.

          Et, “avec ça, vous reprendrez bien un peu de soupe ?!”

          1. 1

            Ils pourront renommer la distrib en Arsch Linux. :o)

            1. 1

              C’était prévisible à cause de l’essor de la cybercriminalité.

              Ken Thompson abordait ce thème dès 1984 durant une conférence « Reflections on Trusting Trust ». J’utilise Manjaro, à défaut de pouvoir utiliser véritablement GNU Guix. Je n’ai jamais eu vraiment confiance dans la vigilance collective : je n’y crois qu’à moitié. Je me dis que la cybersécurité c’est sûrement l’enfer sur Terre.

              1. 1

                J’en conviens.

                Ce qui est désagréable, c’est qu’un problème simple génère une multitude de solutions en ligne de commande, toutes différentes, souvent imprécises, incorrectes ou redondantes.

                Cela renvoie une image trompeuse de la ligne de commande avec des biais significatifs dans la description. Mais apparemment cela perdure.

                1. 2

                  Bha pourtant dans Python tu as quinze milles libs qui font sensiblement la même chose, en plus tu peux pas les avoir en même temps, faut faire des environnements virtuels. Pas vraiment sûr que cet argument soit valable. En plus, à chaque montée en version t’es pas sûr que ça pète pas…

                  Non, c’est surtout que TU es plus à l’aise avec python et tant mieux :-)

                  1. 1

                    Encore plus simple : BTRFS avec profil RAID1 https://btrfs.readthedocs.io/en/latest/mkfs.btrfs.html#man-mkfs-profiles. Pas besoin de sous-couche sous le système de fichier, et on y gagne au passage les contrôles d’intégrité, la compression, etc.

                    1. 1

                      Un pipeline Shell peut être écrit en quelques secondes.

                      Le problème est la fortuité. On finit par chercher des variantes pour coller au mieux au résultat souhaité. Cela entraîne un surcoût temporel inattendu pour un résultat plus ou moins satisfaisant. Ce processus semble facile en apparence mais il s’avère souvent tortueux.

                      Ce qui est souvent présenté comme une qualité universelle du Shell s’apparente également à l’un de ses principaux défauts. On vante l’approche Unix — « un outil qui fait une chose et qui le fait bien » — mais ce principe est paradoxalement mis à mal par la profusion d’utilitaires aux fonctions parfois très proches.

                      On ne retrouve pas ces défauts dans Python.

                      1. 1

                        Bonjour, Vous faites le distinguo entre la création d’alias & l’identité numérique.

                        Par exemple, plutôt que de gérer individuellement 50 adresses liées à des services marchands, l’idée serait de pouvoir les regrouper dans une identité “Shopping”, distincte d’une identité “Administratif”, “Santé” ou “Réseaux sociaux”. Si un problème survient sur un usage donné, on agit sur l’ensemble du contexte concerné sans impacter le reste.

                        Je pense justement que l’identité numérique doit faire appel aux alias et dans une granularité plus profonde. Le fait de distinguer des identités par grands usages n’est pas suffisant. Prenons simplement l’identité “Shopping” et faites le compte des magasins et services auquels vous allez donner cette @email. Sans compter l’exploitation de vos données entre magasins que se refilent vos données. 2 très bons article de la part du Pixel de tracking

                        Ces articles datent un peu mais ils sont toujours d’actualité

                        1. 2
                          FPAT = "\\[[^]]+\\]|\"[^\"]+\"|[^ ]+"
                          

                          Rien qu’écrire cette ligne m’aurait pris plus de temps que de sortir :

                          grep “ 500 “ access.log | awk ‘{print $1}’ | sort | uniq -c | sort -rn

                          Donc nope, désolé, pas d’accord avec

                          Sérieusement, le Shell n’est pas le bon outil. On aurait pu obtenir le même résultat sans effort avec un programme Python.

                          1. 2

                            Ne va pas me faire croire que Python n’est pas installable sur la plupart des systèmes. Idem pour la portabilité. On peut installer GNU awk sans forcément se contraindre à POSIX

                            Python n’est pas toujours installable sur ton environnement : pas la permission, pas disponible, ressources limités, connexion Internet non disponible. Et tous les systèmes n’utilisent pas les outils GNU.

                            Cette remarque n’est d’ailleurs pas artificielle : les systèmes embarqués peuvent ne pas avoir Python par faute de ressources manquantes (genre un RPi Zero 1ère génération) ou alors un vieux serveur AIX qui sert en production n’a pas forcément de version de Python disponible. Or, ils auront awk, sed, grep and co.

                            Encore une fois, le but n’est pas de dire que tu as tord, mais ta solution n’est pas adaptée à toutes les situations. Le but du jeu est de connaître des solutions, pour être versatile et avoir moins peur en terres inconnues. Se reposer sur une seule solution “parce que c’est mieux” est une fausse bonne idée. Et c’est clairement pas quelque chose que ChatGPT va nous apprendre !

                            1. 4

                              Ouai bha c’est moins simple que le script shell du début ^__^ En plus c’est moins immédiat.

                              1. 1

                                Je suis partiellement d’accord sur le principe.

                                On peut certainement chaîner des commandes efficacement et obtenir un résultat valable. Mais cela représente une charge mentale non négligeable. Il faut bien comprendre les divers utilitaires ainsi que le fonctionnement du Shell.

                                On se croirait au début du XXIe siècle concernant la remarque artificielle sur la disponibilité des ressources. Ne va pas me faire croire que Python n’est pas installable sur la plupart des systèmes. Idem pour la portabilité. On peut installer GNU awk sans forcément se contraindre à POSIX.

                                Le script Gawk ci-dessous remplace entièrement le pipeline.

                                #!/usr/bin/env -S gawk -f
                                
                                BEGIN {
                                    FPAT = "\\[[^]]+\\]|\"[^\"]+\"|[^ ]+"
                                }
                                
                                $6 == 500 {
                                    count[$1]++
                                }
                                
                                END {
                                    PROCINFO["sorted_in"] = "@val_num_desc"
                                
                                    for (ip in count) {
                                        print count[ip], ip
                                    }
                                }
                                
                                

                                Script Python « jetable » généré par ChatGPT

                                #!/usr/bin/env python3
                                import re
                                from collections import Counter
                                
                                p = re.compile(r'\[[^]]+\]|"[^"]+"|[^ ]+')
                                c = Counter()
                                
                                with open("access.log", encoding="utf-8", errors="ignore") as f:
                                    for line in f:
                                        f = p.findall(line)
                                        if len(f) > 5 and f[5] == "500":
                                            c[f[0]] += 1
                                
                                for ip, n in c.most_common():
                                    print(n, ip)
                                

                                access.log fictif

                                192.168.1.10 - - [10/Jun/2026:08:15:23 +0200] "GET /index.html HTTP/1.1" 200 5120
                                203.0.113.45 - - [10/Jun/2026:08:16:01 +0200] "POST /api/login HTTP/1.1" 500 721
                                198.51.100.12 - - [10/Jun/2026:08:16:15 +0200] "GET /products HTTP/1.1" 200 8342
                                203.0.113.45 - - [10/Jun/2026:08:17:03 +0200] "POST /api/login HTTP/1.1" 500 721
                                192.168.1.10 - - [10/Jun/2026:08:17:55 +0200] "GET /contact HTTP/1.1" 404 1204
                                198.51.100.34 - - [10/Jun/2026:08:18:42 +0200] "GET /checkout HTTP/1.1" 500 913
                                203.0.113.45 - - [10/Jun/2026:08:19:08 +0200] "GET /dashboard HTTP/1.1" 500 1102
                                198.51.100.34 - - [10/Jun/2026:08:19:54 +0200] "POST /checkout HTTP/1.1" 500 913
                                203.0.113.88 - - [10/Jun/2026:08:20:11 +0200] "GET /reports HTTP/1.1" 200 6543
                                198.51.100.34 - - [10/Jun/2026:08:20:47 +0200] "GET /checkout HTTP/1.1" 500 913
                                192.0.2.77 - - [10/Jun/2026:08:21:12 +0200] "GET /admin HTTP/1.1" 500 1500
                                203.0.113.45 - - [10/Jun/2026:08:21:44 +0200] "GET /dashboard HTTP/1.1" 500 1102
                                198.51.100.12 - - [10/Jun/2026:08:22:08 +0200] "GET /products HTTP/1.1" 200 8342
                                192.0.2.77 - - [10/Jun/2026:08:22:33 +0200] "POST /admin HTTP/1.1" 500 1500
                                198.51.100.34 - - [10/Jun/2026:08:23:01 +0200] "GET /checkout HTTP/1.1" 200 3400
                                203.0.113.45 - - [10/Jun/2026:08:23:45 +0200] "GET /dashboard HTTP/1.1" 500 1102
                                
                                
                                1. 4

                                  Plusieurs remarques concernant ce commentaire :

                                  • Simple ne veut pas dire facile et tout le monde n’apprend pas à utiliser le manuel ou à utiliser correctement les outils à sa disposition, ce qui explique les solutions sur Stack Exchange
                                  • Comme dit en bas, il n’existe pas une solution, mais des solutions
                                  • Le shell est un outil comme un autre et une personne qui sait programmer en shell te sortira le même commentaire sur le Python :)
                                  • Pour moi, il est plus facile d’enchaîner les commandes shell que faire un programme en Python, qui en plus pourra être plus lourd qu’un outil système déjà présent (et sûrement compilé en C)
                                  • Selon moi, le truc le plus important : sort, uniq, grep, awk sont des utilitaires UNIX/POSIX. Ils sont disponibles partout (OpenBSD, Linux, FreeBSD, AIX, Solaris). Ils fonctionnent donc de manière quasi-universelle et ne demandent aucune stack à installer. Ton programme en Python demande un environnement Python et sera sûrement rempli de fonctions spécifiques qui ne sont pas interopérables avec le reste.

                                  “Le mieux est l’ennemi du bien”, comme dirait l’autre

                                  1. 1

                                    Différents chemins mènent à Saint-Bauzille-de-Putois. :o)

                                    1. 1

                                      Bonjour,

                                      Merci pour votre retour détaillé.

                                      Vous soulevez un point très pertinent, et je pense que c’est aussi le signe que je n’ai pas suffisamment clarifié certains aspects dans l’article.

                                      Je suis d’accord avec vous sur le fait qu’un utilisateur averti peut déjà obtenir une partie des bénéfices recherchés avec Gmail “+”, SimpleLogin ou une stratégie “1 service = 1 email”. D’ailleurs, votre pratique est probablement plus avancée que celle de la majorité des utilisateurs.

                                      Là où j’essaie d’aller un peu plus loin, ce n’est pas tant sur la création d’alias que sur la notion d’identité numérique.

                                      Par exemple, plutôt que de gérer individuellement 50 adresses liées à des services marchands, l’idée serait de pouvoir les regrouper dans une identité “Shopping”, distincte d’une identité “Administratif”, “Santé” ou “Réseaux sociaux”. Si un problème survient sur un usage donné, on agit sur l’ensemble du contexte concerné sans impacter le reste.

                                      Autrement dit, je ne considère pas les alias comme des concurrents de l’approche ; au contraire, ils constituent probablement l’une des briques qui rendent cette compartimentation possible.

                                      Votre remarque est intéressante car elle rejoint celle d’un autre lecteur : plusieurs personnes ont spontanément comparé Confido à des systèmes d’alias existants. Cela me montre que je dois probablement mieux expliquer ce qui distingue une adresse, un alias et une identité numérique.

                                      Concernant les numéros de téléphone, je n’ai pas encore trouvé d’équivalent aussi mature et accessible que ce qui existe pour l’email. Certaines solutions commencent à émerger, mais elles restent beaucoup plus limitées selon les pays et les opérateurs. C’est néanmoins un sujet qui m’intéresse beaucoup, car la logique de compartimentation pourrait effectivement s’appliquer aussi au téléphone.

                                      Merci encore pour votre retour et pour le partage de votre propre méthode. C’est exactement le type de discussion que je cherchais en publiant cet article.

                                      1. 1

                                        La vraie puissance de ces outils apparaît quand on les combine. Le pipe (la barre verticale | ) passe la sortie d’une commande en entrée de la suivante :

                                        # Dans les logs Apache, extraire les IPs des erreurs 500 et les compter 
                                        # par occurrence
                                        
                                        grep " 500 " access.log | awk '{print $1}' | sort | uniq -c | sort -rn
                                        

                                        Cette inefficacité remarquable à programmer en Shell apparaît nettement dans cet exemple. On entremêle succinctement des utilitaires de façon erratique. Le Shell est décrit comme étant un outil commode : courant, pratique et fiable.

                                        Mais comment expliquer les multiples solutions insatisfaisantes sensées résorber le problème ? Si vous ne me croyez pas, il suffit de consulter des solutions sur Stack Exchange.

                                        La ligne de commande semble convenir à première vue. Finalement, ce n’est pas aussi simple qu’escompté. On éprouve toute cette complexité en ressortant avec des commandes tortueuses. Parcourir les manuels des utilitaires, expérimenter, recomposer à nouveau en cas d’échec. Pour quoi ? Déboucher sur une ligne de commande qui nous aurait pris un temps fou pour y parvenir.

                                        Sérieusement, le Shell n’est pas le bon outil. On aurait pu obtenir le même résultat sans effort avec un programme Python.

                                        1. 1

                                          Bonjour, Article intéressant qui met bien en avant la segmentation des usages de nos données que l’on transmet et les bonnes pratiques d’hygiène numérique qu’il faut adoptr. Mais pourquoi inventer un énième dispositif pour le faire. De nombreux fournisseurs d’adresses emails permettent de créer des alias Prenons l’exemple de Gmail (c’est juste un exemple et je ne pousse pas vers Google)

                                          Le seul bémol, il me semble, c’est que ce dispositif fonctionne que pour la réception d’email. Si vous souhaitez envoyer un email avec votreadresse+shopzara@gmail.com cela ne sera pas possible. L’utilisation d’un alias sera nécessaire. Mais le nombre d’alias peuvent être restreint. Une solution possible est d’utiliser les services de simplelogin, solution open source (https://simplelogin.io/). Vous créez des @emails en fonction de vos besoins et lorsque les personnes à qui vous avez donné ces @emails vous envoient un message il est redirigé vers une boite email principale. Et si jamais vous souhaitez écrire à ces personnes vous pouvez passer par l’email associée. Ce service a un coût mais permet une certaine tranquilité d’esprit

                                          De mon côté 1 service = 1 @email. Je compartimente sévère mais au moins je vois d’où viennent, pas forcément les fuites, mais surtout les reventes de mes données. C’est une routine prise depuis des années et c’est devenue une habitude. Je fais de la pédagogie autour de moi et prend qui veut.

                                          Savez-vous s’il existe la même chose pour les numéros de téléphone que l’on donne au même rythme que ses @emails ?Je vais cette solution https://surfshark.com/fr/alternative-id chez Surfshark mais je n’ai pas trouvé de retour d’utilisateur et comment cela fonctionne