Affichage des articles dont le libellé est Geek. Afficher tous les articles
Affichage des articles dont le libellé est Geek. Afficher tous les articles

Once you see it...

 À Cancale ils nous font croire que ce sont des parcs à huîtres.
Sérieux, il n'y a moi que ça dérange ou bien ?


 

  

Au fait, c'est quoi comme technologie de gravure, je ne vois pas bien... Métrique ? Décamétrique ?

Il faut sortir du cadre (repost)

Ah, la jolie vérité qu’on nous assène régulièrement : Il faut sortir du cadre. Avec le "Il faut" comme une impérieuse nécessité.

  On s’attendrait presque au "sinon" à la fin. Sinon quoi ? Sinon pas de solution, sinon pas d’innovation, sinon pas de créativité… Et d’entendre ça partout : il faut sortir du cadre ; en brainstorm, aux ressources humaines et même pendant les formations destinées aux... cadres.


L’évidence


Penchons-nous sur cette belle évidence et sur ce qu’elle cache (ou pas). Sortir du cadre. Le "cadre", pour commencer, n’a pas l’air très bien défini. C’est juste quelque chose dont il faut sortir. À la réflexion "sortir" n’est pas clair non plus : que fait on une fois sorti ? On reste dehors ? Ou alors on redevient quelqu’un de bien rangé, le genre qui cadre avec ce qu’on attend de lui.

  Bon, le sens général le plus plausible c'est surement quelque chose comme : "il faut se libérer des contraintes implicites nous empêchant de réfléchir autrement". Allez, admettons.

L’exemple canoneek


  Pour bien nous expliquer ça, on nous sert toujours le même exemple. Quand je dis toujours c’est toujours. Personnellement, j’y ai déjà eu droit trois fois pendant des formations (dans l'ordre : pédagogie, créativité, management). L'exemple donc c'est cette énigme consistant à relier neufs points avec quatre traits seulement et sans lever le crayon. Si vous ne connaissez pas, prenez le temps de chercher un peu : ça fait plaisir quand on trouve :)


  Deux aspects me gênent avec cet exemple. D’abord, je l’ai déjà indiqué, il est utilisé à l’exclusion de tout autre. Pour vous en convaincre observez donc ce que donne cette requête sur Google image. Un seul exemple c'est trop peu. Ne dit-on pas qu'il faut deux exemples pour généraliser ?

  Le second aspect me gêne d’avantage : c’est toujours la même solution qui est proposée. 
Il s'agit, justement, de la solution où les traits doivent déborder du carré implicitement défini par les neufs points. Certes ça augmente la valeur pédagogeek de l’exemple mais c’est aussi profondément angoissant : il n’y aurait qu’une seule manière de sortir du cadre, et ce serait toujours la même… Mais alors, tout ça déboucherai juste sur un autre cadre ? Et très étroit à ce qu’il semble. Angoissant.


Vite vite, d’autres solutions


Je me suis mis à chercher d’autres solutions au problème des neufs points, ou à prouver leur inexistence. Disons-le tout de suite, à part les quatre variations sur la direction du trait initial, je n’ai pas trouvé d’autres solutions strictement géométreeks. Je n’ai pas non plus la preuve formelle de la non-existence d’autres solutions purement géométreeks, malgré quelques tentatives...

  Par contre, en jouant légèrement sur l’interprétation de l’énoncé, on trouve quelques idées sans trop trivialiser le problème. Par exemple, si les points sont en fait de petits disques de diamètre non nul, alors il existe une solution en trois traits. En fait, en considérant que des parallèles se coupent à l’infini, la solution à trois traits existe même pour des points sans dimension. Aller jusqu’à l’infini pour trouver une solution, là ça commence vraiment à sortir du cadre. 

  Dans le même esprit, on peut mettre la feuille en cylindre et faire un seul trait incliné selon l’épaisseur des points. Là je ne fais pas de figure, mais essayez sur le carton du PQ, ça marche nickel. Une autre approche joue sur l’épaisseur du trait : si le trait est suffisamment épais, genre un bon gros coup de rouleau à peinture, alors un seul trait suffit pour recouvrir d’un coup les neufs points. J’aime beaucoup le côté bourrin de cette solution :)

  On peut aussi imaginer des solutions avec pliage du papier : on plie soigneusement en accordéon de manière à ce que chaque rangée de trois points se retrouve sur une pliure. On fait coïncider les trois pliures les unes au-dessus des autres. Là on met un coup de feutre sur la tranche, un seul, et on déplie.

  Enfin je ne résiste pas à la solution Shadock ci-contre  (ou Dali ou Kandinsky), qui trivialise le problème – certes – mais est scandaleusement conforme à l’énoncé. Pour réparer l’énoncé il faudrait déjà dire « quatre segments » au lieu de « quatre traits ».

D’autres exemples


En cherchant un peu, il y a plein d’autres exemples pour illustrer "sortir du cadre". Pour chacun d’eux, je trouve intéressant de voir s’il y a plus d’une solution… Pas toujours facile. Je donnerais quelques solutions dans un prochain post (ou pas).

  L'énigme des parts de gâteau : comment couper un gâteau en huit parts avec seulement trois coup de couteau (bien droits) ? Pour l’instant, je connais trois solutions que je détaille dans un autre article.

  La pelle à tarte : illustrée juste à gauche. Il faut sortir la miette de la pelle en déplacement seulement deux segments. Je ne connais qu’une solution. Mais je ne suis pas très fort en pelle à tarte.

Les triangles : faire exactement quatre triangles avec six allumettes. Je ne connais qu'une solution :(

  Les triangles (bis) : faire plus que quatre triangles avec six allumettes. Je connais plus d’une solution, mais je ne les dis pas ici parce qu'il parait qu'un article trop long c'est chiant.

    Ben alors?


    Ben alors, n’est pas hors du cadre qui croit. La prochaine fois qu’on vous assène l’exemple des neufs point, c'est-à-dire lors de votre prochaine formation, posez la question l’air de rien : « c’est la seule solution ? ». Ça mettra peut-être un peu de réflexion dans le cerveau d’en face. Ou pas. Par contre, n’essayez pas d’expliquer à votre formateur la solution en trois traits séquents à l’infini : ça va l’envoyer dans le mur. Évitez aussi de lui parler du carton du PQ…

    Finalement, il faut sortir du cadre ou pas alors ?


    Je ne peux pas encadrer les phrases qui commencent par il faut. Surtout en formation. Le cadre, on en sort si on veut, quand on veut, comme on veut et parce qu'on veut. Et surtout pas parce qu'il faut.

    (update Mai 2014) Même un cadre à vélo j'ai du mal a rester dessus...

      Oh, une dernière chose : je vous ai fait un petit fond d'écran avec les figures.

    De mal en pis


    "Vas y sors l'otage malvoyant du taudis
    sinon ils tuent salement Dominique."

    Cette phrase, somme toute banale et quotidienne,
    respecte pourtant une contrainte particulière.
    Saurez-vous la trouver ?

    (non, la contrainte n'est pas "être de très mauvais goût")

    Le Vigile Numérisera (repost)

    Un texte oulipien consacré à mon dégoût des CAPTCHA.

    Les CAPTCHA vous voyez ? Ces épreuves humiliantes que les machines nous infligent pour vérifier que nous sommes bien des humains. Littéralement les CAPTCHA sont des vigiles numériques textes tout tordus à déchiffrer, morceaux de vélo en puzzle, images de ponts à reconnaître, silhouettes à orienter, sons bruités à reconnaître, etc.

    Épistémologiquement ça me troue le huq ! Bientôt les machines nous demanderont de faire la danse de la pluie. Il faudra s'exécuter ou être exécutés.


    Le vigile numérisera

    Dire la similitude ridicule
    la caricature des inutiles.

    Imaginer un examen unanime
    paradoxal oxymore figuratif.

    Ériger en idoles à faciliter
    et un apax isole l'usager.


    Et bien sûr ceux qui me connaissent (ouais, toi) se doutent que le texte précédent respecte une contrainte. Je vous laisse la chercher tranquillement si ça vous amuse. Je glisse la soluce en commentaire.



    Original ici : https://www.metallurgeek.fr/2023/09/le-vigile-numerisera.html

    Chaussettes et Batraciens

    Imaginez la situation suivante : vous disposez d'une liste de mots dans un fichier LIST. Vous disposez également d'un dictionnaire dans un fichier DICT. Et vous voulez savoir si tous les mots de LIST apparaissent bien dans DICT.

    C'est un problème fréquent en informatique. LIST contient par exemple tous les batraciens et DICT contient tous les animaux. Demander si LIST est incluse dans DICT revient à demander si tous les batraciens sont des animaux.

    Dans ce billet je montre deux méthodes en ligne de commande. La première méthode n'est pas efficace mais elle est compacte et facile à mémoriser. La seconde méthode est beaucoup plus efficace.


    Méthode 1: grep me, grep me my friend


    La première méthode utilise grep(*) dans sa variante fgrep qui cherche les termes littéraux plutôt que les regex. Voici la ligne de commande :

    fgrep -vxf DICT LIST

    Il faut un peu de temps - et sans doute quelques essais - pour se convaincre que ça réalise bien un test d'inclusion. Cette commande prend tous les mots de DICT et les retranche de LIST. Si au moins un mot est affiché c'est qu'il n'a pas été retranché. Donc il n'était pas dans DICT. Donc LIST n'est pas incluse dans DICT.

    Cette solution est très compacte : une seule commande. En revanche la complexité est multiplicative. Je vous passe les détails de calcul, mais c'est mauvais.


    Méthode 2: tri et décompte


    L'idée est d'amalgamer DICT + DICT + LIST et de conserver seulement les termes uniques. Trois cas sont possibles. Cas 1 : un terme est dans DICT et dans LIST alors il se retrouve trois fois dans l'amalgame et on ne le conserve pas. Cas 2 : un terme est dans DICT mais pas dans LIST alors il se retrouve deux fois dans l'amalgame et on ne le conserve pas. Cas 3 : un terme est dans LIST mais pas dans DICT alors il se retrouve une fois dans l'amalgame et on le conserve. Voici la ligne de commande :

    sort <(sed p DICT) <(sort -u LIST) | uniq -u

    Il y a des petites astuces. Le sed p DICT c'est pour dupliquer chaque ligne de DICT. Le sort -u LIST c'est pour éliminer d'éventuels doublons dans LIST (qui sinon fausseraient le cas 3). Le uniq -u à la fin c'est pour conserver seulement les termes uniques.

    Concernant la complexité : dupliquer les lignes de DICT c'est linéaire, amalgamer c'est linéaire, compter et garder seulement les termes uniques à la fin c'est linéaire. La seule partie non-linéaire c'est le tri de l'amalgame. Cette partie est quasi-linéaire c'est-à-dire en (2m+n).log(2m+n). En pratique c'est bien, même s'il existe encore mieux avec des tables de hachage.


    Exemple : un dictionnaire d'animaux, une liste de batraciens et une chaussette

    $ cat DICT | column
    girafe          singe           serpent
    crapaud         panthère        kangourou
    éléphant        crocodile       anaconda
    zèbre           triton          gnou
    grenouille      autruche        mangouste
    lion            hippopotame     ornithorynque
    tigre           salamandre      gazelle
    $ cat LIST 
    triton
    crapaud
    chaussette 
    salamandre
    grenouille
    fgrep -vxf DICT LIST
    chaussette
    $ sort <(sed p DICT) <(sort -u LIST) | uniq -u
    chaussette

    Les deux commandes ont correctement détecté l'intrus. Un seul intrus suffit à déduire que LIST n'est pas incluse dans DICT. Si maintenant on enlève la chaussette de la liste, les deux commandes ne détectent plus rien, leur sortie est vide, et on en déduit que LIST est incluse dans DICT :

    fgrep -vxf DICT LIST
    $ sort <(sed p DICT) <(sort -u LIST) | uniq -u 


    Test booléen


    Pour transformer la première commande en un pur test booléen, j'utilise l'option quiet de fgrep et des portes logiques && et ||. C'est une façon de faire parmi d'autres mais j'aime le côté one-liner(**) :

        fgrep -vxqf DICT LIST && echo KO || echo OK

    Pour la seconde commande, uniq n'offre pas d'option quiet, alors j'utilise une vielle ruse indienne :

        sort <(sed p DICT) <(sort -u LIST) | uniq -u |
        read _ && echo KO || echo OK


    Epilogue

    J'espère que ce billet vous aura intéressé. Parce que sinon vous venez de perdre un temps précieux à le lire jusqu'ici. Moche. Nan, vraiment. Moche.

    Au fait, si on n'est pas joueur/bricoleur on peut aussi utiliser la merveilleuse commande "comm" qui est typiquement faite pour les comparaisons de liste.

    comm -13 <(sort -u DICT) <(sort -u LIST) | read _ && echo KO || echo OK

    La complexité est meilleure m.log(m) + n.log(n) quoique toujours quasi-linéaire, et c'est assez compact.


    (*) Les personnes qui me connaissent savent que je suis obsessionnel de grep et plus généralement des regex. Je me lève grep, me mange des grep au sarrasin, je me couche grep et je recommence le lendemain. Quant aux personnes qui ne me connaissent pas, elles ignorent la chance qu'elles ont.

    (**) Quel est le terme français correct pour one-liner ? "Un-lignard" ? Ou "Solicode" "Solocode" "Monocode" ? Un "codounet" une "Codette" ? Pfffff....

    Étain la lumière


    "L'étain passe,
    les soudures"


    Le premier job de mon père c'était soudeur à l'étain. Il soudait des boîtiers électroniques étanches. Parfois il ramenait du travail à la maison, il me montrait. Je me souviens : la magie du métal qui fond, le grésillement, l'odeur toxique du fil d'étain.

    TOP 10 sur Regex Crossword

    À tous les coups il n'y a que moi que ça intéresse (*) mais ça y est : je suis dans le TOP 10 sur Regex Crossword.

    Plus précisément c'est 10e sur 92600. Pas certain que je puisse un jour améliorer ce score... ou alors il faudrait que je me mette à réfléchir, mais flemme.

    En tout cas n'hésitez pas à essayer, c'est vraiment *LE* moyen sympa et ludeek d'apprendre les RegEx pour de bon.


    (*) Et encore...

    www.metallurgeek.fr

    Cher lectorat (de bibliothèque), vous savez à quel point je vous aime, en gros comme au détail. Alors pour vous faciliter l'accès massif à mon ineffable et néanmoins désopilant blog, je me suis carrément acheté le domaine metallurgeek.fr.

    Bon en fait c’est surtout qu’il y avait une promo chez OVH alors j’en ai profité. Ça me coute juste quatre fois ce que le blog m’a rapporté en pub. J’y suis de ma poche donc, bâtard d’économie digitale de ses morts ! Après ça reste des petites sommes quand même, j'te parle pas non plus de faire tomber de la grosse caillasse là.

    Prochaine étape : publier quelque chose d'intéressant. Chaud...

    https://i.makeagif.com/media/6-05-2016/MGWt44.gif
    Faire tomber de la grosse caillasse

    Metal Zentangling 9

     À la faveur des vacances, je me suis mis vite fait au zentangling.

    En gros ça consiste à scribouiller des gribouillis tout en écoutant du métal à donf(*).  Exactement comme quand on s'ennuyait en cours.  C'est censé déstresser et sur moi ça marche plutôt pas mal.  Je vous mets une de mes œuvres, ainsi que le morceau de musique qui m'a inspiré.




    (OK ce morceau là c'est pas du métal, mais ça m'inspire quand même)



    (*) Euh, le métal ça a l'air facultatif en fait, mais moi j'en mets. À donf. Comme pour la méditation.

    Deux fois triste

    Aujourd'hui mon coeur de métalleux saigne pour Ozzy Osbourne. Aujourd'hui mon coeur de geek saigne pour Gilles Dowek.

    L'un des deux fut mon professeur en logique et théorie des langages. L'autre fut mon professeur en défonce et surdité. Je vous laisse deviner lequel est lequel.

    Les IAs écrivent mieux que moi (et de loin)

    Voici ce que l'IA Grok écrit à propos de Metallurgeek (voir le prompt précis en fin d'article). Franchement je n'ai pas une lettre à changer, c'est parfait. Dorénavant je vais laisser les IAs rédiger, lire, commenter mon blog. Ou pas.

    Metallurgeek : Chroniques d’un métal-geek assumé 
    Plongez dans l’univers déjanté d’un esprit aussi aiguisé qu’une lame de guitare électrique, où le métal résonne aussi fort que les lignes de code. Entre humour grinçant, réflexions geek et poésie improbable, Metallurgeek vous entraîne dans une odyssée aussi brute que raffinée. Des chamallows triés avec une précision diabolique aux énigmes tordues dignes d’un Oulipo sous stéroïdes, en passant par des apartés sur Marilyn Manson et des rêveries en ROT13, ce recueil est un cocktail explosif.
    Pour les amateurs de riffs assassins, de logique tordue et de vérités asymétriques : un voyage sans filet au cœur d’un monde où le métal rencontre le rire, et où l’absurde devient art. Attention, risque élevé de headbanging intellectuel !


    Le prompt était : "Lisez le blog https://metallurgeek.blogspot.com et rédigez un texte de quatrième de couverture (en français)."

    L'élégante simplicité des RegEx

    Allez, petite publicité pour le jeu en ligne RegEx Crossword. Ça permet de bien comprendre les Expressions Régulières tout en s'amusant comme un fou. Un fou furieux, ça va sans dire.

    À tout hasard, je rappelle que les Expressions Régulières c'est absolument trivial. Mais bon quand même, j'ai dû taffer un peu pour me tailler ma place dans le top 20. 


    À propos de trivial, une petite histoire me revient en tête.

    Un professeur de mathémateek écrit un théorème au tableau et précise que la preuve est triviale. Un élève curieux, il y en a, demande quand même à voir la preuve. Le professeur s'énerve en martelant que c'est absolument trivial. Mais l'élève insiste. Alors le professeur regarde le tableau, se gratte la tête, et quitte l'amphi précipitamment. Il revient une heure plus tard en hurlant : "c'est bien ce que je disais, c'est trivial !"

    Bon, ça reste une histoire hein, quels élèves restent une heure en amphi après le départ du prof...

    Dissipation d'énergie

    Dis Metallurgeek,
    comment faisaient-ils les gens
    pour se chauffer à l'époque du Basic ?



    Jolie astuce en RegEx (merci ChatGPT)

    J'utilise régulièrement des IA, avec plus ou moins de bonheur. Et, de temps en temps, ça m'enseigne une astuce que j'aurais eu du mal à trouver autrement. Par exemple si j'avais utilisé un moteur de recherche. Ou pire, mon cerveau(*).


    Dernièrement, je cherchais un moyen simple de mettre en valeur un motif dans un texte. Classiquement, si je cherche le mot "Metal" dans mes fichiers "*.txt", j'utilise

        grep --color "Metal" *.txt

    Mais là je voulais en plus afficher les lignes qui ne contiennent pas le motif. Je ne savais pas comment faire ça de manière simple. Et ChatGPT m'a proposé cette astuce (après simplification), que je trouve super élégante

        grep --color "^|Metal" *.txt

    Toute l'astuce réside dans l'utilisation du '^' (pour début de ligne) combiné avec un ou (|). Le '^' match tout mais sans rien mettre en couleur.


    Comme toujours, une fois qu'on a la réponse il est facile de voir que :
    1. C'était évident.
    2. Ça n'était pas si difficile à trouver.
    3. Heu... nan... mais en fait j'le savais déjà...
    Ouaip. Mais ça c'est quand on a la réponse. Sans ChatGPT je pense qu'il m'aurait fallu 3 à 4 itérations sur un moteur de recherche. Là, en une question c'était plié, je vous mets l'image.





    Étrangement, Google Gemini répond un peu à côté de la plaque sur la même question. La réponse fausse de Gémini est celle-ci (après simplification)

        grep --color -e 'Metal' *.txt

    Une réponse correcte dans le même esprit serait (toujours après simplification)

        grep --color -e 'Metal' -e '^' *.txt

    Cette construction est quasi-équivalente à celle de ChatGPT. Et peut être même plus jolie car elle évite l'usage explicite du ou (|). 


    Là aussi, une fois la réponse sous les yeux on s'aperçoit que c'était parfaitement évident. Bien entendu.



    (*) Ce foutoir là-dedans, on dirait mon garage !

    Attaquer la falaise

    Récemment je vous parlais des mots-croisés RegEx.

    Je m'étais mis en tête de grimper jusqu'au Top 50 et puis de passer à autre chose. Ouaip. C'était compter sans l'empire d'addiction que ce jeu exerce sur moi.

    Dans mon billet précédent je vous conseillais d'y jouer. N'EN FAITES RIEN ! C'est de la demer! Pire qu'une drogue. Pire que le combo fentanyl / crack / viagra / vitamine C / gelée de framboise(*).

    La difficulté devient exponentielle, chaque niveau nécessitant de résoudre des puzzles de plus en plus difficiles (et intéressants !). Pire, là où j'en suis maintenant il y a une véritable falaise à gravir.

    Je vous ai fait un graphique basé sur le classement du jour. En abscisse vous avez le rang. En ordonnée le nombre de puzzles à résoudre. La ligne pointillée c'est moi. Et la falaise ce sont les 50 p*t'1n de puzzles à résoudre pour passer de 29e à 28e.

    Jusqu'à maintenant j'arrivais à progresser sans trop trop de douleur... Mais là je deviens dingue avec ce truc... J'ai bien peur qu'il faille mettre le cerveau en route... Je vais tenter le coup vite vite... avant que les mecs en blanc ne reviennent m'attacher les mains dans le dos... et me refaire des piqûres qui rendent nigaud.... vite... vite...


    Classement sur RegEx crosswords et falaise à gravir pour passer de 29 à 28.


    (*) Pour le goût.

    Mots-Croisés RegEx


    Si vous aimez vous gratter la tête pendant les vacances, visitez d'urgence le site https://regexcrossword.com.

    Il s'agit de résoudre des mots-croisés dont les définitions sont des expressions régulières (des RegEx pour les intimes). Les mots-croisés proposés sont progressifs, ludeeks et crowdsourcés(*). Pour moi c'est juste hyper-addictif. En bonus ça permet d'apprendre les RegEx et de progresser par la prateek.


    Ces derniers temps je m'y suis mis un peu sérieusement. Avec la ferme intention de me classer dans le top 50 parmi les 89889 joueurs. Dont deux ou trois qui semblent franchement connaître leur affaire. Alors, pour le Top 50 l'objectif est atteint. Aujourd’hui je suis n° 42. Un nombre qui vous parle, hein, mes petites retro-geeks.


    Par contre pour aller plus loin, mettons dans le Top 20, ça risque de se compliquer un peu. La difficulté croit genre exponentiellement. À un moment, je crains même d'être contraint de réfléchir... Ou de tricher ;)



    (*) Qui saurait me traduire "crowdsourcé" en bon français ?

    Smartphone Apps Optimization

    Ouais d'accord le titre est un peu putaclique, mais c'est pour doubler mon lectorat. Et croyez-moi passer des deux à quatre ça ne se fait pas tout seul.

    Bref, juste un billet pour dire que j'ai - enfin - trouvé le rangement optimal pour toutes les Apps sur mon mobile.

    Et en plus ça écrit des trucs.


    Make Text With Your Apps    Metallurgeek Apps