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...

Une heure d'insomnie en plus

Je republie ici ce texte écrit en une heure, précisément l'heure supplémentaire entre 2h et 3h du matin à la faveur du passage en heure d'hiver.


L'instant d'une collision

Ce dont l’humanité se souviendra c’est que ça a commencé à dix heures cinquante et une minute dix-huit secondes précises. Ou alors très exactement à cinq heures quarante cinq et sept secondes. À moins que ce ne soit pile à dix-sept heures deux minutes et cinquante secondes.

En tout cas ça a commencé partout en même temps.

Jeremy déboule tout essoufflé dans le grand café face au Jardin du Luxembourg. S’il y a bien une chose qu’il déteste c’est arriver en retard. Surtout qu’il croyait avoir tout fait pour être en avance. Du regard il balaye les personnes attablées. Grâce à la photo sur son portable il reconnait Aïcha. Wahou encore plus belle en vrai ! Un instant Jeremy reprend son souffle et se refait une contenance. Enfin il affiche son plus beau sourire et avance vers Aïcha.

Au L.H.C. de Genève rien de va plus. La direction a rappelé tout le personnel disponible. Mais aucune expérience en vrai grandeur n’est autorisée. Trop dangereux pour l’instant. Si tant est que « pour l’instant » ait encore le moindre sens. Alors on cherche, on s’affaire, on émet des hypothèses. On gratte à la craie sur du tableau noir, au feutre à alcool sur du tableau blanc, on efface des équations d’un coup de chiffon rageur.

À l’école Chloé a tout juste le temps de se rasseoir que retentit, une fois de plus, la sonnerie de la récréation. La maîtresse en reste bouche bée. Les enfants se regardent incrédules. Un silence reste suspendu dans l’air. Et l’instant d’après ce ne sont que cris de joie et papiers qui volent : « Encore la récré, encore la récré ! » La maitresse hésite entre contrariété et résignation… de toute manière les CM1 il n’y a pas moyen de les tenir.

Aïcha a reconnu Jérémy dès son entrée fracassante. Elle regarde l’heure sur son portable. Quoi, une demi-heure d’avance ? Mais qui donc arrive avec une demi-heure d’avance pour un date ? Elle sursaute. Comment est-ce possible, elle vient à peine d’arriver et elle était pile à l’heure. Ah, Jeremy l’a vue et s’approche en souriant. Joli sourire d’ailleurs.

À l’hippodrome c’est n’importe quoi. Première fois que ça arrive ! Une partie des chevaux a démarré la course alors que l’autre n’était même pas sorti des boxes. Il a fallu annuler, recommencer, une fois deux fois. Pas moyen de les faire partir ensemble. De toute façon la moitié des spectateurs seulement était arrivée. D’autres étaient à la buvette attendant que ça commence dans dix minutes. Euh, non, dans trois minutes. Mais pas du tout madame, dans un quart d’heure voyons, on a bien le temps.

Au LHC on re-autorise finalement les expérimentations. Parce qu’il s’agirait de comprendre quand même ! Des particules accélèrent, tournent, tournent, tournent… et se ratent complètement. Les techniciens, les ingénieurs, les chercheurs, tout le monde s’énerve. Ça enclenche, ça reboote, ça pianote, ça griffonne, mais rien n’y fait. Plus moyen de déterminer ne serait-ce que l’instant d’une collision.

Chloé a suffisamment joué. Dos à un platane elle observe maintenant l’étrange ballet de la directrice. Perchée au sommet d’une haute échelle elle bidouille la sonnerie. Sûrement pour la débrancher pense Chloé, parce qu’elle sonnait vraiment à tout instant. Dehors des parents attendent. « Vous allez voir qu’ils vont encore nous les lâcher en retard ! » « Oh ben là ça va, c’est pas avant dix bonnes minutes, on a bien le temps de papoter. Et comment va-elle votre petite Chloé ? »

Partout dans le monde des gens vont rater leur rendez-vous, des réveils vont sonner trop tôt. Ou pas du tout. Des poulets cuiront trop longtemps, des trains partiront en avance, des lampadaires s’allumeront en plein jour… Plus tard on saura qu’il est arrivé des choses terribles, des accidents, des avions en perdition. Les gouvernements feront des déclarations sérieuses à la télé au journal de 20h17. Euh… 20h41 vous voulez-dire ? Non, non, plutôt 17h53.

Les militaires seront sur la brèche pendant des semaines jusqu’à constater qu’il n’y a plus moyen de synchroniser la moindre opération. Les mois qui suivront, et c’est bien triste, quelques physiciens se pendront de désespoir sans que quiconque – samu, médecin, famille – ne sache s’accorder sur l’heure du décès.

Mais pour l’instant, Chloé saute dans les bras de papa à la sortie de l'école. Pour l'instant Aïcha et Jeremy se demandent s’ils commandent deux autres cafés ou s’ils ne vont pas plutôt déambuler un peu sur les allées du Jardin du Luxembourg.

Harakiri For The Sky - With Autumn I'll Surrender

Harakiri For the Sky ce sont mes chouchous du moment. Depuis un bon moment même. Enfin depuis leurs débuts quoi. Et aujourd'hui nouveau morceau, nouvelle vidéo : With Autumn I'll Surrender. Un pur régal.


Dissipation d'énerige

Dis Metallurgeek,
comment faisent-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'aurai 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 29ième à 28ième.

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 piqures 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 ?

Rêvecursif

Fréquement je rêve
que je frotte une casserole
avec de la paille de fer.
C'est un rêve récurrent.

 

(repost) Les Anneaux Olympiques Façon Geek

Dans la série "geekwashing" voici les Anneaux Olympiques façon geek. Les "Anneaux Olympeeks" pour ainsi dire. Je vous ai fait deux versions, mais c'est uniquement par gentillesse.

Anneaux Olympeeks sur fond noir.

Anneaux Olympeeks sur fond blanc.

(O)mission Impossible

"On ne ment pas à une IA."

J'aime assez cette phrase, entendue je crois dans une interview d'Alain Damasio. Son côté fatal résonne en moi de manière intéressante et, au premier ordre, je la trouve tout à fait juste.

En effet, pourquoi donc mentir à une IA ? Si je désire une bonne réponse, utile, "intelligente", alors autant que ma question soit la mieux renseignée possible, pertinente, "intelligente" également.

En somme.

Le seul moyen me semble-t-il de mentir à une IA resterai le mensonge par omission. Ce bon vieux principe : si la question donne trop d'information, alors ne la pose pas. En pratique, je pense que même le mensonge par omission ne restera pas possible longtemps. Au mieux omettrons nous ce qui est déjà su. Ou tellement facile à déduire.

Je pense que très bientôt ce sera "Omission Impossible." Un monde de vérité asymétrique et totale. Ç’a déjà commencé en fait.


Illustration "Bouche de la Vérité" par Sailko — Travail personnel, CC BY 3.0.

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


Quand IA rien à faire

Voici l'écran que j'ai eu ce matin en me connectant à Google Gemini. Vous je ne sais pas, mais moi, qu'une IA soit capable de rien foutre ça me rassure. Fortement.



Vous êtes bien aimable

Je poste ce billet le 16 mars 2024. Il y a précisément quatre ans débutait en France le premier confinement sanitaire. Voici un texte de moins de 500 mots que j'avais écrit pour l'occasion.



GENDARME      Bonjour, votre attestation s’il vous plait.

PETITE DAME   …


GENDARME      Madame, s’il vous plait, votre attestation.

PETITE DAME   …


GENDARME      Madame, avez-vous rempli et signé votre attestation ?  Vous-savez bien, à cause du COVID là, À la radio ils ont dit, la pandémie.

PETITE DAME   …


GENDARME (inquiet)    Oh-là, mais c’est qu’elle ne va pas bien la petite dame. Eh oh, madame, vous m’entendez ? Eh Ohhh ? Tenez, regardez il y a un banc juste ici, à l’ombre de l’arbre. Asseyez-vous un instant, respirez. Respirez tranquillement. Voiiilààà… Ah vous reprenez des couleurs, j’ai cru que vous nous faisiez un malaise. Enlevez donc votre masque, c’est ça qui vous gêne aussi, vous le remettrez après allez.

PETITE DAME   Vous…  vous…  vous êtes bien aimable…


GENDARME      Ah ben voilà, elle parle la petite dame.  Vous habitez par ici ?  Vous avez de la famille pas loin ?

PETITE DAME   Je…  C’est-à-dire j’ai ma petite fille à côté de chez moi…  Elle est assistante maternelle.


GENDARME      Voulez-vous qu’on l’appelle ?  On va lui demander de venir vous chercher ?

PETITE DAME   Non non…  vous êtes bien aimable…  je vais bien…  je vais bien…  je vais bien.  Je veux rentrer chez moi…  vous êtes bien aimable.


GENDARME       D’accord mais moi je ne vous laisse pas vous relever tout de suite ma petite Dame. Vous vous reposez encore un petit peu s'il vous plait.  Comment vous appelez-vous ?

PETITE DAME (elle récite comme une enfant)    Je m’appelle Marceline Le Floch je suis née à Landerneau le 16 février 1929.  Je suis Française.  Vous êtes bien aimable.


GENDARME      Ne vous inquiétez pas, Madame, tout va bien.  Voilà respirez tranquillement.  Vous habitez loin ?

PETITE DAME   J’habite là-haut.  J’ai toujours habité là-haut…  Mais vous savez, la maison elle a beaucoup changé depuis.  Oh là là oui.  Je vais bien…  Je rentre chez moi maintenant.  Vous êtes bien aimable.


GENDARME      Vous êtes certaine ?

PETITE DAME   Oui, certaine. Vous êtes bien aimable.

Marceline se lève et part d’un pas égal.  Sur le banc, une flaque de pipi s’étale.  Des gouttes tombent entre les lattes.  Marceline marche quelques mètres.  Elle s’arrête.  Se retourne.  Un instant il y a cette chose impossiblement violente en elle. En contraste total avec son malaise et sa frayeur des minutes précédentes.


PETITE DAME   Vous savez jeune homme, on dit que je perds la mémoire mais moi je n’oublie pas ça. Parce que voyez-vous j’ai déjà été contrôlée ici.  En Novembre 1943.  Ils n’avaient pas été bien aimables.



-- Metallurgeek

Figure de style

 "Fût-il en futon ton futal te filoute.
Flatules et la fuite est fatale."


Quelle est cette figure de style ?
(Ceux qui répondent "Une trivialité" gagnent un point).

Alcest : l'Envol

Alcest L'Envol.
Premier single issu de l'album à paraître Les Chants de l'Aurore. 

Chaque 29 février je repense à Monsieur Kern

Il me parlait chaque matin, quelques minutes, à la sortie du Métro Austerlitz.  Je me souviens ses vielles paluches serrées sur le godet de café, qu’il – je cite – allait se jeter derrière la cravate.  Je ne crois pas qu’il ait jamais porté de cravate.

Après les politesses d’usage – Salut le p’tit étudiant fait meilleur aujourd’hui hein ? – son histoire commençait, recommençait, inlassablement.  Toujours le même début jamais la même suite : Tu vois mon père il me cognait dessus tout le temps.  Quand il picolait, quand il picolait pas.  Alors moi un matin j’avais 14 ans j’ai mis des trucs dans un sac-à-dos et je suis parti sur la route, et j’y suis encore !

C’était ça son début, invariable.  La suite se créait chaque jour en fonction de son humeur, de ceux qu’il – soi-disant – rencontrait sur sa route, de ce qu’il avait lu dans les journaux de la veille…  Il n’y avait jamais de fin, il se perdait complètement dans les détails et moi je devais y aller parce que bon c’est pas tout hein mais faut y aller quand même…

Je ne l’interrompais pas souvent, je ne lui faisais jamais remarquer les contradictions, les anachronismes manifestes.  Je l’écoutais.  Parfois il revenait au présent : Eh le p’tit étudiant, garde tes thunes et va plutôt me chercher un café aux quais, que je me le jette derrière la cravate.  Pas chez machin-truc c’est des cons.  Tu vas chez l’arabe et tu dis que c’est pour Monsieur Kern.  Quand c’est Mohamed il me fait pas payer.

Une fois Monsieur Kern m’a montré une souris qu’il avait assommée là où il vivait, une espèce d’hôtel chelou que son assistante sociale avait fini par lui dégotter.  J’l’ai bien choppé cette salope !  La souris hein, pas l'assistante.  Puis il revenait à son histoire : J’ai 59 ans et je suis toujours sur la route, j’ai changé mon sac à dos des dizaines de fois, mais moi j’ai jamais changé.  Regarde, ce sac là il est bien, je l’ai chouré au vieux campeur.  C’est des cons là-bas tu sortirais un semi-remorque sans payer qu’ils le verraient même pas.  Moi je crois qu’ils avaient très bien vu mais qu’ils avaient laissé faire.  Personne n’avait le cœur d’emmerder monsieur Kern.

Et puis un matin, pas d’histoire, pas de café.  Il disait qu’il était allé aux toilettes, qu’il avait – je cite – poussé trop fort et qu’il avait senti quelque chose craquer « par-là » en montrant son abdomen.  On allait lui faire des examens.  Pendant plusieurs jours comme ça : on va me faire des examens.  Et un matin, pas de Monsieur Kern.  Mohamed m’a dit qu’il était mort cette nuit.  Et il m’a griffonné le numéro de son assistante sociale sur une serviette en papier.  Vague tristesse dans son regard et un geste du genre c’est comme ça.  Il me tend un café et refuse ma monnaie : le café c’est pour moi aujourd’hui.  Je le regarde avec un sourire : « Ben je vais me le jeter derrière la cravate alors. »  Je me souviens qu’on a ri.

À la crémation de Monsieur Kern nous étions deux : l’assistante sociale et moi.  Mohammed travaillait.  L’assistante a dit que d’habitude elle était toute seule.  Pendant tout le temps qu’il crémationnait je me demandais ce qu’était devenu son sac-à-dos et tout le fatras qu’il trimbalait là-dedans.  Une vie de route.  L’assistante n’en avait pas la moindre idée : vous savez, monsieur Kern il racontait quand même beaucoup d’histoires.

Oui, je savais.

Pourquoi je vous raconte tout ça aujourd'hui moi ? Ah oui, c’était un 29 février.


-- Metallurgeek

Balades parisiennes dans le Monopoly

Ahh, parcourir les lieux du monopoly dans l'ordre.
Faut aimer Paris.
Bon, il faut aussi aimer Google Maps et se munir de patience.
Allez, voici les images, rien que pour vous.

Parcourir les rues du Monopoly dans l'ordre.


Belleville, Lecourbe, Montparnasse, Vaugirard, Courcelles, République



La Villette, Neuilly, Paradis, Gare de Lyon, Mozart, Saint-Michel, Pigalle



Matignon, Malesherbes, Henri-Martin, Gare du Nord, Faubourg Saint-Honoré, Bourse, Fayette



Breteuil, Foch, Capucines, Saint-Lazare, Champs-Élysées, Rue de la Paix

Un clip que j'adore

Alors OK c'est pas du Métal, mais promis tout est bon là-dedans. Le son, l'image, l'émotion, la claque !

Retro-Geek Quote

J'ai gardé une habitude bien retro-geek. Chaque fois que je lance un shell, c'est a dire des dizaines de fois par heure, la petite vache de la commande "cowsay" me dit une phrase au hasard. Phrase choisie dans la très longue liste de la commande "fortune". 
Avec l'option -a la commande fortune peut aussi choisir des phrases un brin impertinentes. Voici à quoi j'ai eu droit ce matin. C'est tellement beau, on dirait du ChatGPT.


fortune -a | cowsay -W 64


Les joies du retrogaming

Crash mémoire Civilization II dans Windows 3.1 juste avant de lancer le vaisseau.
25 ans que ça nous râpe les burettes :D

Petite précision sur la licence cc-by

Pour rappel les créations originales sur ce blog sont toutes sous licence CC-BY. CC pour Creative Commons et BY pour indiquer qu'il est sympatheek de citer l'auteur (Metallurgeek). 


C'est une licence peu contraignante, je cite moi-même des créateur de cette manière, au bout d'un temps ça devient un réflexe. Le principal avantage de cette license c'est d'éviter à un éventuel plagieur d'éprouver un sentiment misérable au moment où il (ou elle) inscrit son propre nom sur l'image qu'il (ou elle) vient de s'attribuer subrepticement.