Logo journal du hacker middle
  1. 1

    Note : J’ai relevé un usage à contre-emploi. Cela paraît intuitif de combiner la commande grep avec xargs car l’utilisateur peut vouloir afficher la liste des fichiers correspondant puis ensuite vouloir éditer automatiquement ces fichiers. Néanmoins, on recherche un motif deux fois successivement en lançant deux processus : grep et sed.

    grep -rl "srobert@example.com" . | xargs sed -i 's/srobert@example.com/MY_EMAIL_ADDRESS/g'
    

    Les lignes de commande suivantes me paraissent plus justes.

    find . -type f -exec sed -i 's/srobert@example.com/MY_EMAIL_ADDRESS/g' {} +
    find . -type f -print0 | parallel -m -0 sed -i 's/srobert@example.com/MY_EMAIL_ADDRESS/g' {}
    
    1. 1
      1. 1

        Votre documentation m’apparaît comme un condensé d’expériences et de techniques. C’est très bien car cela a pour but d’éclairer les choses. Néanmoins, je suis moins convaincu par la méthode en général. J’ai un livre sur le langage Python qui est élaboré suivant le même principe, et au final, je n’y ai pas compris grand chose. Ce qui me chagrine un peu c’est la mise en perspective, avec des contradictions apparentes.

        C’est l’outil idéal dans telle ou telle situation mais … l’élaboration d’un motif peut devenir complexe et peut aboutir malencontreusement à des erreurs. C’est l’outil idéal pour manipuler du texte mais … il existe aussi divers autres outils.

        Efficacité : Les regex permettent de réaliser des opérations complexes sur des chaînes de texte avec un minimum de code. Ce qui pourrait prendre des dizaines de lignes de code en logique conditionnelle peut souvent être accompli en une seule ligne avec une expression régulière bien construite.

        Laisser penser que le concept apporte de la performance est maladroit.

        Unlike several other scripting languages, Lua uses neither POSIX regex nor Perl regular expressions for pattern matching. The main reason for this decision is size: a typical implementation of POSIX regular expressions takes more than 4000 lines of code, which is more than half the size of all Lua standard libraries together. In comparison, the implementation of pattern matching in Lua has less than 600 lines. Of course, pattern matching in Lua cannot do all that a full POSIX implementation does. Nevertheless, pattern matching in Lua is a powerful tool, and includes some features that are difficult to match with standard POSIX implementations.

        Extrait du livre : Programming in Lua, 4th edition.

        1. 1

          DebConf25 à Brest du 07/07 au 21/07/2025.

          Tcho !

          1. 1

            Etrange d’utiliser Draw.io pour créer un schéma relationnel. Préfères MySQL Workbench bien plus puissant pour ça ou sinon si on veut payer : DrawSQL, …

            1. 1

              On imagine notre future et d’autres le font aussi, voire même à notre place. Quand je pense qu’on veut nous implanter des puces électroniques dans le cerveau pour ne pas être mis au rebut de l’évolution (humain augmenté), ou fabriquer des robots humanoïdes à partir d’organismes vivants. Tant qu’il nous reste de la liberté.

              1. 1

                Je n’ai intégré que cette problématique car c’est mon cas d’usage. Cependant, je ne suis pas fermé à faire évoluer l’outil s’il y a des besoins.

                1. 1

                  J’aurai tendance à voir les choses ainsi :

                  • /tmp :
                    • Lorsque les fichiers n’ont pas besoin de persister au-delà d’une session ou d’un redémarrage.
                    • Pour des opérations temporaires rapides qui nécessitent des performances élevées.
                    • Pour des fichiers de petite taille, afin de ne pas saturer la RAM.
                  • /var/tmp :
                    • Pour des fichiers temporaires qui doivent persister au-delà des redémarrages.
                    • Lorsque l’espace de /tmp monté en RAM n’est pas suffisant pour vos besoins.
                    • Pour des opérations qui ne nécessitent pas les performances élevées offertes par le stockage en RAM.
                  1. 1

                    C’est globalement la bonne méthode. C’est cool, ça marche bien.

                    Pourquoi vérifier seulement la date d’expiration ? Quid des différents statuts (RESTRICTED / RESERVED / …) ?

                    1. 1

                      C’est pourquoi il existe … /var/tmp

                      1. 1

                        Je l’utilise depuis plus d’un mois.

                        Malheureusement, la recherche ne cherche pas dans les notes mais le développement est actif et j’ai peut-être une version pas à jour.

                        Un point qui n’est pas mis en avant sur korben.info et qui me semble important est la mise en cache. En effet, parfois on essaye de retrouver un lien de nos favoris mais le lien est cassé et la page n’existe plus. Ici la prévisualisation de la page est mise en cache et on aura toujours une version locale.

                        1. 1

                          Justement, je le pensais aussi, j utilise un k380 depuis 4 ans maintenant. Utilisation de vim et cli intensif, je ne touche la souris que pour naviguer sur firefox. Bien que n ayant aucune douleurs au poignets/mains j ai tendance à avoir une mauvaise position au niveau des épaules.

                          Je vais donc tenter l aventure d un clavier en deux parties. Mais je pensais plus à quelques chose de plus classique , un QWERTY, parceque jongler entre le mode nomade et le bureau risque d être pénible.

                          Un clavier splitted pas trop cher a conseiller pour tester, avec un layout classique, silencieux, low profile ? Ou je découpe un k380 en deux ? ;)

                          1. 2

                            Ça fait plaisir de le revoir up :)

                            1. 2

                              Super article. À une époque, j’étais en BÉPO orthogonal sur TypeMatrix. Mais la généralisation du portable m’a obligé à jongler entre les deux. Au final, j’ai opté pour deux choses:

                              • privilégier le modal de vim. (J’utilise Doom Emacs)
                              • intervertir Verr. Maj. et Ctrl gauche pour soulager le petit doigt.

                              Avec ça, plus besoin de révolutionner le clavier.

                              Pendant une crise de TMS, j’ai utilisé Numen pour le contrôle vocal. C’est super ! https://numenvoice.org/

                              1. 2

                                Hummm, que j’aime la fin de l’article concernant OpenBSD ;)

                                1. 2

                                  Et voilà que ça nous reparle d’une des pire plaies du web, les raccourcisseurs d’URL… Pamerci Korben.

                                  1. 1

                                    Ce serait le comble que les hébergeurs de contenu freinent l’utilisation de l’IPv6. D’un autre côté, les réseaux des opérateurs ne leur appartiennent pas. Il suffit de leur couper l’accès à l’Internet en IPv4 s’ils se refusent à migrer vers IPv6. Du coup, leur connectivité IPv4 en serait dégradée. Cela vaut pour les organisations voulant faire profit de la situation ou ceux faisant preuve de mauvaise foi (aucun effort). Pénaliser cela pour défendre l’intérêt général.

                                    1. 1

                                      QUELS SONT LES « SCÉNARIOS DE SORTIE » D’IPv4 PLAUSIBLES ?

                                      Le scénario de sortie d’IPv4 n’est pas connu et est très difficile à prévoir à ce jour. Si l’on essaie malgré tout d’imaginer les différentes étapes d’un tel scénario, on arrive par exemple à une séquence telle que celle-ci :

                                      1. La quasi-totalité des offres d’accès internet grand public commercialisées proposent de l’IPv6 activé par défaut en plus de l’IPv4.

                                      2. La quasi-totalité des offres d’accès internet grand public, pro et entreprise proposent de l’IPv6 activé par défaut. Une connectivité IPv4 est toujours proposée.

                                      3. Une part non négligeable des sites web sont hébergés en IPv6 uniquement, malgré des poches de résistances à l’IPv6 pour l’accès proposés par quelques entreprises à ses salariés. Ces sites ne sont plus accessibles depuis une entreprise qui bloque l’IPv6.

                                      4. Une part non négligeable des offres des fournisseurs d’accès à internet ne proposent plus de connectivité IPv4. Il n’est plus possible de consulter des sites web hébergés en IPv4 uniquement.

                                      5. La majorité des sites web abandonnent IPv4, devenu inutile. IPv4 n’est plus utilisé sur internet, mais peut continuer à être utilisé pour des réseaux privés.

                                      Source : arcep.fr

                                      1. 1

                                        IPv4 nuit à la compétitivité ou à l’esprit d’innovation. Avec la croissance mondiale de l’accès à l’Internet, on a plus assez d’adresses. Cela remet en question le modèle de l’Internet. Raison pour laquelle on a inventé IPv6 dans les années 90 et dont l’usage est encore à appréhender. On a eu le Web, l’union de l’informatique et des télécommunications, l’apparition des objets connectés (informatique embarquée dans des systèmes électroniques reliés à un réseau informatique), les réseaux sociaux (les espaces d’échanges virtuels ou le phénomène accru de dématérialisation). Ce n’est pas tant le partage de contenu ou la version 6 du protocole IP qui change quoi que ce soit par rapport à l’usage de l’IPv4. Conceptuellement, on échange des données. Mais la version 4 du protocole IP a indubitablement des problèmes inhérents comme celui de l’épuisement de l’espace d’adressage. Ce n’est probablement pas une question de perspective mais de passage à l’échelle.

                                        1. 1

                                          Que pensez-vous des Shell « Unix » embarqués dans un langage de programmation ? Je n’ai pas un niveau suffisant pour tester mais je trouve que Rash (Reckless Racket Shell) présente un certain attrait. On inverse le raisonnement en maîtrisant d’abord un langage de programmation puis en y intégrant ensuite un langage de commandes. Je serais plus orienté vers Rash que vers Xonsh parce que Racket (variante Scheme) intègre la métaprogrammation.