Not Raffarin Pète-Gonades Memorial Day #9

Cette année, j’ai laissé passé la date du Raffarin Pète-Gonades Memorial Day. Je pourrais antidater l’article, mais ce serait à la fois malhonnête et inintéressant. Et je ne vois pas trop l’intérêt d’être malhonnête si ça ne m’apporte rien.

Voilà donc un paradoxe amusant. Pendant des années, j’ai travaillé dans des entreprises plus ou moins merdiques, dans lesquelles le RPGMD était une journée de Travail comme une autre. Malgré ce vol de temps libre, je ne manquais jamais ce rendez-vous et publiais un article le jour-même.

Maintenant, j’ai trouvé une entreprise dans laquelle je me sens mieux, avec moins de pression et qui nous offre le RPGMD. Et là, que fais-je ? Je foire le coche et publie l’article en retard. Je suis vraiment un vilain.

J’avais pour habitude de profiter de l’occasion pour donner un peu d’actualité concernant le Revenu de Base Inconditionnel. Mais là, pas le temps et pas d’idée précise sur le sujet. À part dire que Benoit Hamon a baltringué et qu’il mérite pour cela la distinction honorifique du boulet de platine.

Et sinon quoi d’autre ?

Rien de spécial pour l’instant. Du coup, je voulais vous faire partager un ancien projet :

La page Facebook de Cruchard Barbemousse, zéroième secrétaire du Parti Pirate Grolandais.

(https:// www. facebook.com/Parti-Pirate-Grolandais-167128036813116/).

J’y mettais un post par jour, avec des analyses de l’actualité grolandaises, des liens intéressants, des « billets d’humeur », etc. Ça aurait dû être un truc génial qui m’aurait permis de rencontrer en personne toute l’équipe du Groland et qui m’aurait rendu célèbre. Et puis ensuite je me suis lassé et suis reparti dans d’autres projets plus ou moins intéressants et aboutis.

Je vous laisse regarder le tout, en espérant que le lien fonctionne toujours. Facebook a tendance à cramer les pages qui ne sont pas consultées depuis longtemps. Je pige vraiment rien à Facebook. Tu balances tes posts complètement à l’arrache, ça te fait un fil d’actualité long comme un jour sans nichons, tu peux rien classer, rien catégoriser, rien marque-pager pour plus tard, parce que fuck l’ergonomie.

Y’a des tas de gens qui ne sont pas sur Facebook par principe, parce qu’ils pensent que c’est le mal, parce qu’ils veulent pas nourrir les vilains GAFAM, parce qu’ils préfèrent « les vrais relations humaines », etc blablabla.

Personnellement, je ne suis pas sur Facebook parce que j’y panne nib et que je trouve ça pas pratique. Mais c’est pas pour ça que je suis bizarre, n’est ce pas ?

Toujours est-il que voilà une piratesse :

Unités, encodage et caractères spéciaux

Vous vous souvenez de ce prof de physique, au collège, qui n’avait pas tenu compte de vos réponses à un contrôle parce que vous n’aviez pas indiqué les unités ?

Vous aviez écrit « 63 » au lieu de « 63 grammes », « 2,83 » au lieu de « 2,83 mètres », etc. Ça vous avait valu un 5/20.

C’était un gros con ce prof.

Sauf qu’il avait raison.

C’était effectivement un gros con, concernant un tas d’aspects de sa personnalité. Mais pour cette histoire d’unité il avait raison.

En informatique, on a un problème équivalent avec les encodages et les caractères spéciaux.

C’est des centimètres ou des inches ?

L’encodage

Vous connaissez peut-être déjà. Il s’agit de la correspondance entre un caractère et la suite de nombre utilisée pour le représenter. Les ordinateurs ne savent rien faire d’autres que gérer des valeurs numériques. Une image, une application, des clics de souris, une connexion internet, les barrettes de RAM, tout ça c’est que des nombres. Il peut y en avoir énormément, et on ne fait pas toujours la même chose avec. Mais c’est des nombres.

Voici quelques exemples.

  • Le caractère é (e accent aigu) :
    • est représenté par la suite de nombres (195, 169) dans l’encodage ‘UTF-8’,
    • est représenté par le nombre unique 233 en ‘Latin-1’,
    • ne peut pas être représenté en ‘ASCII’,
  • la lettre A majuscule:
    • est représentée par le nombre unique 65, en UTF-8, Latin-1 et ASCII
    • est représentée par le nombre unique 193 en ‘EBCDIC’ (un encodage bizarre utilisé par IBM).

En détail, c’est un peu plus compliqué que ça, car l’encodage et le jeu de caractères sont deux notions différentes, je n’ai pas parlé du Byte Order Mark, et il existe plusieurs sortes d’EBCDIC (https:// en.wikipedia.org/wiki/EBCDIC). Mais on ne va pas se prendre la tête avec ça.

Donc une chaîne de caractères toute seule, ça ne veut rien dire et si vous ne connaissez pas son encodage, vous ne pouvez pas la manipuler avec certitude.

C’est ça qui fait que les accents sont parfois tout pourris dans une page web ou un fichier Excel. Le texte est dans un certain encodage, l’application qui le manipule croit que c’en est un autre, et paf pastèque.

Vous pouvez décider que « fuck les accents », et obligez vos utilisateurs à n’utiliser que les caractères ASCII. Mais il faut avoir conscience que cela implique « fuck tous les alphabets non latins » : « fuck les russes, les chinois, les arabes, les hébreux, les mathématiciens et les gens qui écrivent avec des smileys ».

À tout cela s’ajoute une autre couche de confusion possible.

Les caractères spéciaux

Alors voilà. Vous avez créé un site web ou une application dans laquelle l’utilisateur peut saisir du texte (par exemple pour ajouter un commentaire, décrire son chien, etc). Vous maîtrisez parfaitement ce que vous avez développé, et connaissez donc l’encodage dans lequel la chaîne de caractère a été saisie. Super ! Tout est OK ? On peut arrêter de se poser des questions ?

Que diantre nenni !

Il faudra peut-être appliquer une transformation pour protéger ou interpréter certains caractères spéciaux.

Vous voulez enregistrer cette chaîne dans une base de données ? Attention aux injections SQL, vous devez protéger les simple-quotes en les remplaçant par deux simple-quotes à la suite. (Les requêtes paramétrées permettent de le faire automatiquement).

Vous voulez la réafficher dans une page HTML ? Attention aux failles XSS et aux balises HTML. Vous devez protéger les caractères ‘<‘ et ‘>’ en les remplaçant par les HTML entities. Et comme les HTML entities s’écrivent avec le caractère ‘&’, il faut lui aussi le remplacer par son HTML entity.

C’est une URL ? Pensez à la convertir en ‘url-encoding’ : remplacer les espaces par des %20, etc.

C’est une ligne de commande ? Il va peut-être falloir protéger les antislashes en les doublant. Ou pas. Ça dépend de ce que vous avez décidé, mais il sera de bon ton de prévenir l’utilisateur des opérations appliquées.

C’est un chemin vers un fichier ? Très bien, vous n’aurez peut-être pas de conversion à faire. Mais si vous utilisez ce chemin dans une ligne de commande, n’oubliez pas de l’entourer par des guillemets, au cas où il comporterait des espaces. Vous connaissez, bien sûr, l’encodage de votre système de fichiers ?

Autres choses

Cette histoire d’unités et de vilains profs de physique est transposable à d’autres types de données : les dates.

Je ne parle même pas du format de représentation. « 02/03/14 23:45:56 », vous savez déjà que ça ne veut rien dire. Le ’02’ c’est le jour où c’est le mois ? (Au passage, merci les anglais de faire, une fois de plus, à l’envers de tout le monde). Le ’14’, c’est 1914 ou 2014 ?

Évitons ces pièges stupides, et indiquons les dates au format ISO 8601 : 2014-03-02 23:45:56. Voilà, et maintenant, plus d’ambigüité !

Perdu ! Elle est bien votre date, mais c’est quel fuseau horaire ? C’est l’heure d’été ou l’heure d’hiver ? Au fait, vous saviez que les américains effectuaient le changement d’heure, mais pas exactement au même moment dans l’année par rapport à nous ? Et les leaps seconds, on les prend en compte ou pas ?

La solution à cette histoire de date est de tout gérer avec des timestamps, et de convertir vers/à partir d’autres formats uniquement lors des entrées-sorties de ces dates dans votre programme. Le timestamp définit un nombre de secondes depuis 1970-01-01 00:00 UTC.

À partir de ce nombre de secondes, on peut retrouver toute la date. De plus, les opérations de calcul avec les intervalles sont grandement simplifiées. Par contre, ça met en incubation des bugs encore plus rigolos que celui de l’an 2000 (https:// fr.wikipedia.org/wiki/Bug_de_l’an_2038).

Quel bazar ces données ! Au moins, avec les nombres on n’est pas embêtés. Quoi que… Si vous faites de la programmation bas niveau (ce qui signifie « proche de la machine », et non pas « programmation pour les gros teubés »), un monde de normes et de notations peut vous jaillir à la figure. Comment vous représentez les nombres à virgules ? flottantes ou virtuels ? IEEE 754 ou autre chose ? Vos entiers, vous les voulez signés ou non signés ? Avec du complément à deux ou autrement ?

Même pour la donnée la plus simple possible : des nombres entiers positifs, vous devrez peut-être vous poser des questions : big-endian ou little-endian ? Des bits de contrôle ? de parité ?

Il y a encore un tas d’autres choses où le lien entre la donnée et la méta-donnée est indispensable. Vous avez récupéré un fichier, super, mais c’est pour en faire quoi ? C’est une image ? Un texte ? Autre chose ? Et sous quel format ? Et si vous tombez sur une vieille cassette vidéo, c’est du PAL ou du Secam ?

Tout ça pour dire qu’il faut faire attention aux données qu’on manipule, depuis la plus simple variable string jusqu’aux tera-octets de base de données. Il y a plein de programmeurs qui n’en ont pas toujours conscience, ça met le bazar, et je voulais vous sensibiliser sur ce sujet, tel le gros con de prof de physique que je ne suis pas.

Ce sera tout pour aujourd’hui

J’essaie de faire un article de blog par mois, et là ça a été un peu juste. Comme d’hab’, c’est la faute au monde réel, mais aussi à Dead Cells, le nouveau jeu de la Motion Twin. J’aime beaucoup, il y a énormément d’idées intéressantes, et une ambiance mignonne-glauque assez bien travaillée.

Du coup je vous laisse, je vais essayer de dégommer des Slashers au corps à corps.

#copinage : « sans droit ni loi »

Lulu les poilu(e)s !

Y’a des gens qui écrivent sur des blogs, d’autres sur du papier.

L’une des personnes écrivant sur du papier s’appelle Jacques-Yves Martin. Dit comme ça on a l’impression que c’est un pseudo. Franchement, quand on a un nom qu’est un prénom, on s’amuse pas à avoir un prénom qu’est un double-prénom. Enfin, sauf si on est un explorateur des grands froids (Jean-Louis Étienne, Paul-Émile Victor). Vous ne pouvez pas savoir si « Jacques-Yves Martin » est son vrai nom, mais ce n’est pas le plus important.

Et donc, sur du papier, il a écrit un polar, que j’ai lu et bien apprécié. Ça s’appelle « Sans droit ni loi » (https:// jacquesyvesmartin.com/sans-droit-ni-loi/).

On y retrouve des éléments de base assez classique : un policier menant une enquête, un suicide qui n’en est pas forcément un, des endroits glauques, etc. Sauf que Jacques-Yves Martin, qui n’a pas exploraté les étendues de Grande-Froidie, a eu l’occasion d’exercer le métier de policier. Du coup, son histoire est bien plus ancrée dans la réalité que d’autres. L’enquête s’étend sur plusieurs mois, au lieu d’être torchée en 3 jours par le super-sherlock de service. Des détails assez précis sont mentionnés : concernant la médecine légale, les indices présents sur un cadavre, l’administration policière, les procédures, etc.

Boris Thibert, le héros, est un justice-holique (il est accro à la justice). Alors là vous allez me dire que c’est banal, plein de personnages de polars sont comme ça. Mais c’est pas parce que quelque chose a déjà été fait qu’il ne faut pas le refaire à sa manière. En plus, un personnage justice-holique peut amener à des dilemmes moraux bien alambiqués : il pourrait glisser dangereusement vers la notion de vengeance, ou s’opposer à d’autres justice-holique n’ayant pas la même justice, etc. Les dérives potentielles sont innombrables.

Étrange mise en forme du texte

Les pensées internes du héros, ses réflexions, ses doutes et ses difficultés à s’affirmer sont écrites en italique et entre guillemets. D’autres parts, les pensées intimes du narrateur données en confidence au lecteur sont écrites en italique sans guillemets. Je ne suis pas sûr que ce soit les conventions standards, mais ça ne me dérange pas. De manière générale, j’aime bien voir la typographie un peu secouée par des nouvelles règles (cohérentes ou pas). Rappelons que dans les débuts de ce blog, il n’était pas rare de voir du texte changer de couleur pour montrer les moments où je craquais mon slip dans le but de l’accrocher fièrement au bout d’un bâton de majorette tel un étendard portant glorieusement les couleurs du ᵐ°uᵛₑᵚₑᴻt brownien gastrique (ha ha ha, mouvement « brownien » gastrique,  HAHAHAHAHA-HAAA !)

Hrrmm… Broumf. Je ne sais pas si je suis très clair avec ces histoires d’italique et de guillemets. Je vais donc vous montrer un exemple. Afin de ne pas vous spoiler l’histoire, il est de mon cru, inspiré de faits réels.

Réchèr entra dans le bar et jeta un regard circulaire pour repérer les gens intéressants.

« J’adore les volumineuses fesses de cette femme assise là-bas. »

La femme en question employa toute son attention à ne pas prêter attention à Réchèr.

Il aurait tant aimé être le tabouret de bar sur lequel elle était assise.

Il commanda une bière avec une paille et une touillette.

Vous voyez la subtilité ? La phrase en italique+guillemets est à la première personne car ce sont les pensées internes du personnage. Celle en italique simple est à la troisième personne car c’est le narrateur qui partage une intimité avec le lecteur.

Bon et alors ?

Eh bien je trouve personnellement que les italiques du narrateur sont inutiles. Le simple fait de lire un texte implique automatiquement une relation intime entre le lecteur et le narrateur. Ce n’est pas la peine d’en rajouter. Revoici mon exemple :

Réchèr entra dans le bar et jeta un regard circulaire pour repérer les gens intéressants.

« J’adore les volumineuses fesses de cette femme assise là-bas. »

La femme en question employa toute son attention à ne pas prêter attention à Réchèr.

Il aurait tant aimé être le tabouret de bar sur lequel elle était assise.

Il commanda une bière avec une paille et une touillette.

Je sais pas vous, mais moi je trouve ça plus fluide et moins insistant.

Un petit bug

C’est pas grave du tout, mais ça heurte ma sensibilité d’enculeur de mouches informaticien. L’histoire fait mention d’un « logiciel de cryptage ». Le mot « cryptage » ne devrait pas être utilisé. Explication rapide :

  • Pour rendre un message secret, on le « chiffre », en utilisant une « clé » (qui est un peu comme un mot de passe).
  • Pour retrouver le message original à l’aide de la clé, on le « déchiffre ».
  • Lorsqu’on tente d’obtenir le message original sans en avoir la clé, on le « décrypte ». C’est une opération plus ou moins faisable selon l’algorithme de chiffrement, la complexité de la clé, etc.

Le terme « cryptage » n’a donc aucun sens. Il voudrait dire qu’on rend un message secret sans avoir de clé, alors que c’est justement ce qui sert à chiffrer. Plus de détails par ici (https ://fr.wikipedia.org/wiki/Chiffrement#Terminologie).

Sinon, le logiciel de chiffrement dont il est question est « TrueCrypt », et il semblerait que ce ne soit pas le plus fiable. (https:// www. howtogeek.com/203708/3-alternatives-to-the-now-defunct-truecrypt-for-your-encryption-needs/). Mais c’est un autre sujet et rien n’interdit d’inventer des personnages qui s’en servent.

Le mec au whisky

Attention, dans ce chapitre je vous spoile la première page. J’espère que vous ne m’en voudrez pas trop.

L’histoire débute par un mec qui boit du whisky.

Or figurez-vous que je connais personnellement l’auteur. Il m’avait demandé de relire et corriger une première version de son texte, ce que je fis, en échange de quelques dix-millièmes de bitcoins.

Dans cette première version, le mec de la première page buvait du Martini. Je lui ais suggéré que ça faisait un peu boisson de tafiole, du coup il l’a changé. Je me sens super important d’avoir eu cette petite influence.

Je vous laisse acheter et lire le livre pour découvrir le rôle que tient ce fameux « mec au whisky ».

Et sinon Jacques-Yves vient de sortir un deuxième livre : Ode à Caïssa (https:// jacquesyvesmartin.com/la-deuxieme-enquete-de-boris-thibert/).

Si je trouve le temps de le lire entre deux verres de bière (je bois pas de whisky, je suis une tafiole), j’en parlerais ici même.

« Sans droit ni loi » est un polar, mais il ne comporte pas de détective, contrairement à cette image.

Le blason de Réchèr

Lors d’un week-end de total égarement, je me suis intéressé à l’héraldique.

Il s’agit des règles permettant de créer et décrire les blasons.

Ça m’a beaucoup plu. J’aime les langages spécifiques destiné à une catégorie d’objets déterminée. En informatique on appelle ça des DSL (Domain Specific Language). Par exemple :

  • le SQL, pour communiquer avec une base de données,
  • le HTML, pour décrire la structure d’une page web,
  • le SVG, pour décrire un dessin vectoriel,
  • Puzzlescript, dont nous avons récemment parlé (http:// www. puzzlescript.net/).

Y’en a des qui pensent que les DSL c’est de la merdasse. (http:// sametmax.com/les-mensonges-des-dsl/) (http:// sametmax.com/dites-non-aux-dsl/)

On ne va pas débattre là-dessus, car ce que je vous propose n’est pas de créer un nouveau DSL, mais de jouer avec un qui existe déjà.

Introduction à l’héraldique

Les couleurs ont des noms rigolos :

  • blanc : argent
  • jaune : or
  • rouge : gueule
  • bleu : azur
  • vert : sinople
  • violet : pourpre
  • noir : sable

Lorsqu’on décrit un blason, on commence par la disposition des couleurs du fond, puis les formes géométriques qui s’ajoutent dessus, puis les « meubles » (les dessins et les objets ajoutés encore au dessus).

Les directions ont également des noms rigolos :

  • en haut : en chef
  • en bas : en pointe
  • à droite : à senestre
  • à gauche : à dextre

La gauche et la droite semblent inversées, car ces directions sont définies par rapport à la personne qui porte le blason, et non par rapport à celle qui le regarde. (Un peu comme au théâtre où on dit « côté jardin » et « côté cour », parce qu’on sait jamais de quelle « droite » et « gauche » on parle) (J’ai jamais vraiment réussi à accepter ces notions de « droite » et « gauche », ça m’a toujours énervé).

Pour un cours complet, il vaut mieux se rendre sur des sites spécifiques, qui décriront cette discipline plus clairement et plus exhaustivement :

Attention, l’héraldique étant un art assez ancien, vous constaterez que tous les sites web sur le sujet ont un design visuel datant de l’internet des années 70. Et comme il n’y avait pas internet dans les années 70, c’est vous dire si le design afférant est passé de mode.

Et maintenant, blasonnons !

Réchèr blasonne d’argent à la barre de pourpre chargé d’un fol d’argent astragalé de sable, accompagné en chef d’un graphe de sinople d’ordre 5 disposé en cercle, les sommets 1, 3 et 5 de degré maximal, chargé de 5 besants d’argent, et en pointe d’une chope de sinople houblonnée de sable, l’écu timbré d’un entonnoir de sinople. Devise pythonienne juste « None is not False » en lettre de sable sur un listel d’or.

Décomposons ce bazar :

Réchèr blasonne d’argent

C’est moi. Et mon blason est sur fond blanc.

à la barre de pourpre

Il y a un trait oblique rose dans le sens du slash. Une « barre » est dans le sens « / ». Une « bande » est dans le sens « \ ».

Pour l’esthétique du dessin, la barre comporte des bords roses foncés. On devrait donc pouvoir dire : « de pourpre foncé rempli de pourpre clair ». Sauf qu’en héraldique, on se fiche des nuances de couleurs, il n’y a que les 7 précédemment citées (ainsi que l’orangé, le tanné et les fourrures, mais osef). C’est sans doute un héritage de l’époque où les blasons étaient utilisés pour se repérer dans les batailles, et devaient donc rester simples.

Bref, cette barre est pourpre.

chargé d’un fol d’argent

Sur la barre est ajouté un fou. Ce n’est pas un élément très commun, il se peut même que ce soit le tout premier blason qui en soit doté. Il n’existe aucune restriction sur les meubles, donc ne venez pas m’embêter.

astragalé de sable

Le fou possède des anneaux noirs.

Une palanquée d’adjectifs permettent d’exprimer les différentes colorations des objets : « accorné de gueule » pour un animal ayant des cornes rouges, « ajouré d’or » pour un châteaux ayant des fenêtres jaunes, etc.

L’héraldique moderne ajoute d’autres de ces adjectifs, dont « astragalé », qui permet d’indiquer la couleur des anneaux des pièces de jeux d’échecs. Ce mot trouve son origine éthymologique dans les astragales des colonnes grecques.

(Pour information, je suis le créateur, et à ce jour l’unique utilisateur, de l’héraldique moderne).

accompagné en chef d’un graphe de sinople

Sur le haut du blason se trouve un graphe vert (un bidule avec des points et des liens entre eux) . Pas besoin de préciser que c’est du côté « dextre ». Le fait de dire « accompagné » signifie que l’élément est placé par rapport à la pièce principale (le blason), et par défaut, on ne place pas un élément par-dessus un autre. Pour ne pas recouvrir la barre pourpre, on est donc obligé de le placer à dextre.

Notez que pour l’élément précédent (le fou), j’ai utilisé le mot « chargé » et non « accompagné », ce qui signifie qu’il est placé par rapport à la pièce mentionnée juste avant (la barre).

d’ordre 5 disposé en cercle, les sommets 1, 3 et 5 de degré maximal,

Là, c’est du vocabulaire relevant de la théorie des graphes. En héraldique moderne, il est autorisé de s’appuyer sur d’autres langages spécifiques.

L’ordre 5 signifie qu’il y a 5 points (sommets) dans le graphe. Les numéros 1, 3 et 5, compté dans le sens des aiguilles d’une montre sont connectés à tous les sommets du graphe, (y compris à eux-mêmes, mais on s’en fout). Pas besoin de s’attarder plus là dessus, vous connaissez les graphes, n’est-ce pas ? (https:// fr.wikipedia.org/ wiki/Th%C3%A9orie_des_graphes) (https:// fr.wiktionary.org/ wiki/Cat%C3%A9gorie:Th%C3%A9orie_des_graphes_en_fran%C3%A7ais)

chargé de 5 besants d’argent,

Il y a 5 ronds blancs sur le graphe. Par défaut, on les dispose de la même manière que les sommets du graphe.

et en pointe d’une chope de sinople

En bas du blason se trouve une chope de bière verte.

Il faudrait peut-être repréciser explicitement « accompagné en pointe », mais je ne suis pas assez expert dans le domaine pour déterminer si c’est absolument nécessaire.

houblonnée de sable,

La chope de bière possède une mousse noire (héraldique moderne).

l’écu timbré d’un entonnoir de sinople,

Au-dessus du blason est placé un entonnoir vert.

Devise pythonienne juste « None is not False » en lettre de sable sur un listel d’or.

Il y a une devise écrite en noir sur un parchemin jaune, elle est placée en-dessous par défaut.

En héraldique moderne, une devise est dite « pythonienne » lorsqu’elle correspond à une instruction valide dans le langage de programmation python. Elle est « pythonienne juste » si l’appel de fonction bool(<devise>) renvoie True.

Dans notre cas, la devise est même encore plus que pythonienne juste, puisqu’elle renvoie directement True. Il n’y a pas de mot spécifique pour ça, mais si vous en voulez un n’hésitez pas à l’inventer.

Je vous laisse tester tout cela dans une console python en ligne (https:// repl.it/G268/0).

Significations et histoires de ce blason

Le fou et l’entonnoir

Le fou est l’avatar que j’utilise un peu partout, car je me définis comme quelqu’un de fou, ça fait zarbo-hype.

Comme je ne suis pas spécialement fan des jeux d’échecs, j’ai ajouté un autre objet signifiant la folie (l’entonnoir), pour désactiver la charge sémantique échiquiétale.

Les couleurs

J’ai toujours trouvé étrange la notion d’aimer une couleur plus qu’une autre ou d’avoir « une couleur préférée ». Mais lorsqu’on dessine, il faut avoir un minimum d’unité et de cohérence sinon ça devient vite très moche. J’ai choisi de mettre du vert un peu partout car c’est la couleur des martiens et du poison.

La couleur pourpre (plus exactement rose) est une référence à la couleur de fond de mon avatar.

L’origine de cette couleur est ridiculo-rigolote. Mon avatar est une image de Pru-Pra-Prok, le dessin animé que j’ai fait il y a quelques années. J’avais configuré le rose pétant (#FF00FF) comme couleur de transparence par défaut. À l’époque, je n’avais pas envie d’utiliser la transparence du format d’image .png car j’étais bizarre, et je m’étais dit : « ce rose à la con, j’en aurais sûrement jamais besoin ».

Ensuite, lorsque j’ai eu besoin de choisir un avatar pour un site quelconque, j’ai pris l’image du fou à l’arrache, sans changer le fond. Et c’est resté comme ça. C’est très amusant, parce la couleur que je ne voulais justement pas utiliser s’est retrouvée un peu partout dans ma personnalité du web. Ha ha ha.

Le fou est blanc sur le blason, afin de respecter une règle de base de l’héraldique : « pas de métal sur du métal, pas de couleur sur une couleur ». Les couleurs argent et or sont les « métaux », toutes les autres sont les « couleurs ». C’est assez logique comme règle : si on dessine un élément clair sur un autre élément clair, ça ne se distingue pas bien. Pareil pour le foncé.

Le graphe

Le plus important pour moi, ce ne sont pas les choses, mais les liens entre les choses. Ce principe me semble s’appliquer à un peu tout : les personne, les créations artistiques, les idées, les neurones, … J’ai voulu illustrer ce principe par un graphe.

Les points ne sont pas tous connectés entre eux pour montrer qu’il reste toujours quelque chose à faire, qu’une création n’est jamais vraiment terminée, qu’une personne peut toujours s’améliorer, etc.

La bière

J’aime bien la bière.

La mousse est noire pour faire genre je suis quelqu’un de sombre avec une âme torturée par le mal. Ça me donne un côté dark-zarbo-hype.

Autres considérations en vrac

Le dessin est en pixel art. C’est moche et mal fait parce que je suis pas super doué et que j’ai pas voulu me prendre trop la tête. Mais malgré tout, c’est du pixel art.

J’ai cherché des logiciels d’héraldique, des générateurs de blasons, etc. Ça existe, mais c’est du même niveau que les sites web sur le sujet, (années 70, etc).

J’ai juste trouvé ça qui est pas trop mal (http:// rpg.uplink.fi/heraldry/). Mais on ne peut rien faire de compliqué : pas d’alésage, de cléchage, d’engrêlage, de semage, etc. La génération de la description n’est pas géniale non plus, il y a des répétitions, et c’est en anglais.

Je m’étais dit que je pourrais coder un générateur de blason. Et après je me suis rappelé que l’héraldique n’intéresse déjà pas grand-monde au départ. On va donc oublier cette idée.

Et sinon c’est un blason officiel. Ouais, vraiment.

En fait, n’importe qui peut créer un blason pour n’importe quoi, à condition de ne pas en copier un pré-existant. Mais comme il n’y a pas d’autorité de recensement centrale, vous êtes obligé de faire des recherches un peu partout pour vérifier la primeur de votre création.

La solution la plus simple consiste donc à y placer des éléments qui n’existait pas au Moyen-Âge (un robot, un ordinateur, un vagin artificiel, …), afin de réduire à presque-néant les chances de tomber sur un blason déjà existant. L’héraldique moderne peut être d’une grande aide dans cette tâche, puisqu’elle permet l’ajout de graphes, d’instructions en python, et bien d’autres choses encore.

Vive la liberté d’expressionotron

Voilà déjà quelques temps que mon twitter bot expressionotron a dépassé le nombre hallucinogénatoirement élevé de 30 followers. On en est même à 36.

Comme promis dans cet article, j’ai libéré le code source de cette incommensurable œuvre.

C’est sur mon compte github : tout bien documenté, avec la config de mise en production, la doc de conception, etc. J’aime la doc.

bande dessinée de Gaston Lagaffe documentation

Au départ, j’avais prévu de ne libérer que le code source, sans les listes de morceaux de phrases utilisés pour créer les expressions. Sauf que je me suis vautré et j’ai tout balancé d’un coup dans github. J’aurais pu supprimer les listes après coup, mais ça aurait toujours été possible de les retrouver en fouillant les logs. J’aurais également pu effacer tout le repository et repartir de zéro, mais j’avais la flemme.

De plus, je n’avais pas envie de maintenir une version publique sans les morceaux de phrases et une version privée avec. Donc, ça suffit les bêtises, on libère tout, c’est beaucoup plus simple. Ça n’en est que mieux pour vous. (À condition d’admettre le postulat initial que ça vous intéresse).

Pour la suite

L’expressionotron continue sa quête de célébrité. La prochaine étape sera d’accorder les adjectifs avec les noms. En effet, actuellement, tous les adjectifs sont au masculin, alors qu’il y a quelques noms féminins. Ce qui peut provoquer quelques incohérences grammaticales, tel que :

Ça corrode de la prostate néo-myxomateux au point godwin !! CXI !!1!

Pour diminuer le risque de faute, j’ai intégré assez peu de noms féminins. Il serait maintenant louable de corriger ce problème et d’implémenter l’accord nom-adjectif, afin de pouvoir se permettre d’ajouter des noms de tous genres.

Pour 40 followers, je me lance dans cette tâche.

Suis-je un vilain ?

D’aucuns et d’aucunes diront que mon expressionotron est sexiste, puisque je l’ai créé par défaut au masculin, et que ce n’est que bien plus tard que je songe à féminiser ses composants. Ouais c’est possible.

Je vais me permettre de poser la question : le masculin et le féminin, est-ce que c’est pareil que l’homme et la femme ?

Il existe des langages (l’anglais par exemple), dans lesquels le masculin et le féminin a moins d’importance : chaque nom d’objet est neutre (« it ») et les adjectifs sont invariables. Quelles sont les différentes manières, à travers le monde et les âges, de prendre en charge le féminin et le masculin dans une langue ? A-t-on absolument besoin d’y intégrer cette notion ? Comment est-ce pris en compte dans le langage des signes ? Est-ce qu’on se touche les seins ou les testicules à chaque fois qu’on veut accorder un adjectif ?

Je sais pas. Il faudrait peut-être chercher les réponses auprès des langages épicènes, dont nous parlerons peut-être dans un autre article.

De toutes façons, ce blog lui-même est sexiste, vu le type de photo incorporé à chaque article.

tumblr_o6utq94hzd1uaiz32o1_1280

Mais c’est comme ça. C’est vraiment ces images là que j’ai envie de vous montrer, que vous soyez une femme, un homme, ou entre les deux, ou totalement autre. J’espère que ça vous plaît.

Not-powerpoint de présentation de git

À ConcreteWorld.🌏, la chouette entreprise où je travaille, on a coutume d’organiser des afterworks d’humagogie. Le concept est simple :

  • des collègues de travail, dans un cadre de pas-Travail,
  • quelqu’un réalisant une présentation sur un sujet quelconque,
  • de la bière.

Le premier sujet était « Le concept de la réalité à travers les âges », présenté par Collègue Kouing-Amann. Comme c’est du pas-Travail, l’ambiance est détendue, il a donc pu se permettre des images funs, des memes internet, des gifs animés avec des chats, etc. On a tous trouvés ça super.

Galvanisé à la vue de cette performance, je me suis proposé pour réaliser le prochain afterwork, avec une présentation de l’outil de gestion de version ‘git’.

Après le code spaghetti, les branches git spaghetties.

Mon idée de départ, c’est que git pourrait être utile à tout le monde, et pas seulement aux développeurs. A partir du moment où vous manipulez des fichiers, vous pourriez être intéressé par git.

J’ai donc ai préparé un one-man-show assez bien ficelé, avec :

  • Des slides créés sur le site slides.com, comportant des images giga-délire.
  • Une démo en live, avec très peu de ligne de commandes mais des outils graphiques (SourceTree, TortoiseGit, …) afin de ne pas effrayer les non-informaticiens.
  • L’outil ZoomIt (https:// technet.microsoft.com/en-us/sysinternals/zoomit.aspx) pour afficher en grand ce que je fais sur l’écran semi-géant.
  • Un intermède petit-guignolesque avec deux marionnettes-chaussettes, chacune d’elle représentant une branche git. Elles contiennent des modifications différentes sur une même zone d’un même fichier, et donc elles sont en conflit. Ha ha ha.
  • La possibilité de faire des « hola », que même si ça échoue ça serait drôle quand même. (Je ferais ma hola tout seul, moment de solitude lol comme quand un humoriste fait une blague super pas drôle mais c’est assumé que c’est pas drôle et c’est ça qui est drôle).

Nous avions donc là une alliance de pédagogie, de live et de fun en mesure de subjuguer mon auditoire et de lui faire écrouler les faux plafonds de la salle lors du tonnerre final d’applaudissements.

sttngclap_original Les gens de Star Trek qui applaudissent

Malgré tout, j’avais un petit peu peur : « Et si on me trouve ridicule ? Si les gens se moquent de moi et de mes marionnettes ? Ou de mes commentaires de commits ? Ou de mes repositories nommés avec des prénoms pour faire un mini-story-telling distinguant qui a committé quoi ? Ne risque-je pas de fondre en larme devant tout le monde ? De devenir fou ? De fabriquer un lance-flammes en une fraction de seconde et de brûler tous ces gens ? ».

Rien de tout cela n’est arrivé et personne ne m’a trouvé ridicule. Par contre, personne ne m’a trouvé intéressant.

Voici les diverses choses qui se sont passées. Je vous mets ça à nouveau sous forme de liste, car j’aime bien les listes.

  • Colléguette Louloute dit tout fort et à plusieurs reprises que je suis en train de perdre les gens et que je devrais écourter.
  • Des bavardages. Bon, ça arrive. Mais là des gens s’étaient carrément levés et avaient formé un salon de discussion parallèle dans la mini-cuisine à côté. Mini-cuisine n’ayant pas spécialement de cloison d’isolation phonique avec la salle où je performais piètrement.
  • Collègue Pez sort du groupe parallèle et s’adresse tout fort à une personne restée dans ce qui restait de mon auditoire : « Eh, garde bien les yeux ouverts et oublie pas de passer ma facture ! » (je ne sais pas de quoi il parlait). La personne en question était l’une des rares à se forcer à continuer d’écouter ce que je racontais. J’ai revu dans cette situation l’archétype du mauvais élève pourrissant la gueule du bon élève juste comme ça gratuitement.
  • Collègue Inuit passe derrière moi pour regarder mon écran. Je lui demande « t’as besoin de quelque chose ? Parce que sinon l’écran que j’ai là c’est exactement le même que celui que tu vois projeté en grand ». Il me répond : « non, je voulais juste savoir quand ce serait fini ».
  • En plein milieu d’une phrase, je dois sortir mon téléphone pour l’éteindre car il faisait « bip-bip sms ». D’habitude, quand on fait ça, il y a une réaction : des rires étouffés, des discussions, un flottement. Là c’était déjà tellement le bordel qu’il n’y a eu aucune différence.
  • Au moment d’écrire le commentaire de commit « Ajout d’une image de chat », je fais un lapsus claviétal et j’écris « chate ». Je me suis dit que les gens allaient se mettre à rigoler et se déconcentrer, alors j’ai immédiatement désamorcé le danger en disant « ha ha, quel lapsus rigolo ! ». Et là, pareil : aucune réaction, aucune différence notable dans le bordel ambiant.

C’était donc un fiasco total. Pendant les marionnettes, l’attention des gens est revenue et ils ont ri, et quelques secondes après, c’était re-perdu.

Je me suis demandé si j’allais pas m’énerver, engueuler les gens, ou tout simplement partir et les laisser en plan, là. J’aurais aussi pu essayer de les rappeler à l’ordre gentiment. Mais je n’en ai eu ni l’envie, ni le courage. C’est pas une salle de classe et je ne suis pas un prof. Comme déjà dit dans un autre article, j’ai toujours eu du mal avec les profs (la justification de leur utilité, leur autorité, le fait que ce soit des humains, …), je ne me voyais donc pas agir comme l’un d’eux.

May I have your attention, please ?

May I have your attention, please ?

Je ne saurais pas expliquer en détail pourquoi ça s’est terminé comme ça. L’analyse la plus poussée que je puisse faire étant : « j’ai globalement chié comme si j’avais eu le transit intestinal d’un avion de chasse gluté avec du coco à base de pruneaux ». Je me croyais plus fort que ça, plus à même de captiver un auditoire. Eh bien en fait non.

Ils vont donc continuer à s’échanger leurs fichiers à l’arrache, par mail ou sur des répertoires partagés ; à faire du renommage en « _v1 », « _v2 » et du CPOLD (https:// github.com/malko/cpold) ; à se demander qui a chabraqué leurs petites valeurs de leurs petites cellules Excel. Bon courage à vous, les clodos !

Ensuite, Stagiaire АБВГДЕЁЖ (un mec bien mais vraiment bizarre), a fait une seconde présentation sur les différentes manières de mesurer la distance entre deux mondes parallèles. C’était le moment de la bouffe, très peu de gens écoutaient, mais il a eu bien plus de sang-froid que moi, il a continué de blablater sans se prendre la tête ni pulsions de pétages de plomb. Ça s’est très bien passé pour lui et les quelques personnes qui écoutaient d’une oreille mangeatoirement distraite.

Je vais arrêter de parler d’informatique aux gens. Je fais manifestement chier tout le monde, c’est pas la première fois que ça arrive. Je réserve mes partages à ce blog. L’avantage c’est qu’ici, ceux qui ne sont pas intéressés par ce que je bave ne se mettent pas à me pourrir, ils se contentent d’arrêter de lire et de passer à autre chose.

Je vous fais cadeau de ma présentation de git : http://slides.com/darkrecher/deck-1#/.

Faites-en ce que vous voulez, mais attention, il semblerait qu’elle soit dotée du super-pouvoir d’endormir et/ou de rendre fous ceux qui la regardent.

Gros bisous !

A quelle distance sommes_nous de ce monde parallèle ?

À quelle distance sommes-nous de ce monde parallèle ?

Demake de Atomix fait avec PuzzleScript

Fans de mini-jeux de réflexion, bonjour.

atomix_water

Vous avez peut-être déjà découvert PuzzleScript (dans ce blog ou ailleurs). Voici ma première œuvre réalisée avec ce langage. Plus précisément, c’est la deuxième, mais la toute première était un cadeau pour une amie, et reste donc du domaine privé.

Concernant l’idée originale, je ne me suis pas foulé et j’ai repris le principe d’Atomix, un jeu où vous devez déplacer des atomes afin de reconstituer une molécule. La particularité, c’est que lorsqu’un atome est en mouvement, il continue jusqu’à être stoppé par un mur ou un autre atome. (Je suis sûr qu’en mécanique quantique, tout se passe exactement comme ça).

atomix-2

Concernant les niveaux du jeu, je ne me suis pas foulé non plus, et j’ai pompé ceux d’un certain draknek (http:// blog.draknek.org/post/93360531842/if-i-wanted-to-clone-atomix-this-is-where-id).

Ils sont intéressants et épurés de toute casse-couillerie inutile. Merci à lui.

Hyponitrous acid (mais vous le saviez sûrement déjà).

Hyponitrous acid (mais vous le saviez sûrement déjà).

Là où j’ai été obligé de me fouler, c’est pour implémenter le fonctionnement d’Atomix dans PuzzleScript. Le langage est assez souple et bien fichu, mais ne permet pas vraiment de décrire des comportements « globaux » prenant en considération une zone étendue de l’aire de jeu. J’ai donc eu recours à quelques bidouilles hasardeuses pour le processus vérifiant l’égalité entre la molécule-modèle et la disposition des atomes.

D’autres part, il n’y a pas de notion de variables. Pour tester « est-ce que l’atome dans le modèle est égal à l’atome dans l’aire de jeu ? », je n’ai pas trouvé de meilleure solution que de tout décrire verbeusement : « est-ce que l’atome du modèle est un hydrogène et celui de l’aire de jeu un hydrogène ? ou bien est-ce que l’atome du modèle est un carbone et celui de l’aire de jeu un carbone ? etc. ».

Il y a une petite documentation au début du script indiquant les contraintes à respecter pour créer les niveaux, ainsi que quelques commentaires ici et là. Ça mériterait d’être documenté plus en détail, ou pas.

puzlescript_code

Le sus-mentionné draknek a employé kp-atomix (https:// github.com/figlief/kp-atomix) pour publier les niveaux qu’il a créés, ce qui est une aubaine, car ils y sont décrits via un fichier json au format assez facile à comprendre.

Et quitte à me fouler pour coder, je me suis fendu d’un petit programme (en python, évidemment) convertissant les niveaux json de kp-atomix en niveaux de PuzzleScript. Ça aurait certainement pris moins de temps de les convertir à la main, mais ça aurait été tellement moins rigolo.

Ce programme a été honorablement documenté, car il est possible que certains de ses morceaux me resservent par la suite. Tout cela est évidemment dans un repository github, comme le veulent les conventions asociales à la mode en ce moment.

J’aime beaucoup PuzzleScript. Ça regroupe un grand nombre d’idées de mes rêves : des jeux de réflexion à foison, un moyen inhabituel de raconter des histoires, la création d’un langage dédié relativement souple et générique. Je vais voir si je peux faire quelque chose avec tout ça.

Comme vous le savez, les atomes sont liés ensemble par des liaisons de covalence. Voici donc une image de liaison, presque tout aussi idiosyncratique (même si je sais pas ce que ça veut dire).

double_dildo