Bonne grosse galère avec le contrôle parental intégré à Windows 10

Il a fallu que j’installe un truc comme ça, pour des amis qui n’y connaissent rien aux ordinateurs et qui ont des enfants.

La famille, c’est important.

J’avais antérieurement décidé d’arrêter de parler d’informatique aux gens, car ça les saoule et ça me saoule que ça les saoule. J’ai accepté d’installer ce contrôle parental en échange de bières, mais je ne leur ai donné qu’un minimum d’explications. De toutes façons, les amis en question n’étaient pas plus intéressés que ça de savoir comment ça marche à l’intérieur et c’est bien leur droit.

Donc, ces personnes sont nantis d’un ordinateur avec Windows 10, ainsi que de deux enfants prénommés « Enfant_A » et « Enfant_B ». Au début, ils ont hésité à leur donner des prénoms originaux tel que « Enfant_1 » et « Enfant_2 », puis ils ont préféré opter pour du semi-classique.

Il s’est occurré un ensemble non négligeable de galères. Je vais vous les décrire sans screenshots, veuillez m’en excuser. Je n’ai pas pensé à les faire sur le coup et je n’ai pas envie de les refaire car ça m’a vraiment énervé.

Je débute par quelques recherches et tombe sur cet article à la con (http:// www. cnetfrance.fr/produits/logiciels-controle-parental-39807617.htm).

On y dit que le meilleur logiciel est « Microsoft Family Safety », qu’il détecte tous les vilains trucs pas-pour-enfants et qu’il est « bien intégré au système », ce qui semble tout à fait plausible puisque produit par Microsoft.

Création du compte des parents

Le PC avait un seul compte en local. Il est précisé que Family Safety nécessite un compte connecté à Microsoft. Soit, ça a du sens.

Je dois donc transformer le compte existant. Pour cela, il faut une adresse e-mail. Je n’ai pas envie d’utiliser celle des parents, car ça voudrait dire qu’il faut que je leur demande de se connecter, de cliquer sur le lien de validation, etc, ça me lourde. Je veux faire ce qui m’est demandé en sollicitant le moins possible les demandeurs, sinon il va falloir leur expliquer des choses qu’ils ne vont pas comprendre et ça va durer des plombes. De plus, ils n’ont pas forcément envie que les vilains GAFAM prennent connaissance d’un lien évident entre leur ordinateur et leur adresse mail.

Je spécifie donc dans Windows une adresse en « yahoo.fr », puis je vais sur ledit Yahoo et je la crée vite fait.

Retour aux paramètres Windows, je clique sur « valider le compte », ce qui génère collégialement un mail comportant un lien, que je devrais cliquer pour prouver que c’est bien moi.

Sur Yahoo : pas de mail.

Après moult temps de galérage, je réalise que l’adresse est en yahoo.com et non pas yahoo.fr. J’avais vaguement vu, lors de sa création, qu’il y avait écrit « .com » et que je ne pouvais rien y changer, mais je ne m’étais pas affolé plus que ça. Je pensais que tout se redirigerait vers la même boîte. J’utilise quotidiennement une adresse en yahoo.fr qui fonctionne très bien.

Mes interrogations me mènent là dessus (https:// forums.yahoo.net/t5/Manage-your-account-settings/unable-to-create-a-yahoo-ca-account/td-p/38699).

Les mails nouvellement créés sont forcément en yahoo.com. Ça a changé à un certain moment, sans trop qu’on sache pourquoi. Merci Yahoo.

Je re-retourne aux paramètres de Windows et tente de changer l’adresse. Ça ne semble pas possible. Mais en fait si, sauf que c’est proposé au moment de l’envoi du mail de validation, et non pas directement dans les paramètres. Mais en fait non car quand je le fais et que je change en yahoo.com, j’ai un message avertissant que « l’adresse n’existe pas ».

Dans le doute, je me suis envoyé un mail de test, qui a fonctionné. Donc si ! L’adresse yahoo.com existe, espèce de connard !

Finalement, je suis reparti de zéro, j’ai créé un nouveau compte Windows connecté, avec une nouvelle adresse que j’ai définie en gardant les paramètres par défaut. Ça m’a balancé du outlook.fr, mais je suppose que vous l’aviez vu venir. En tout cas, ça fonctionne.

Au passage, j’ai dû ajouter un mot de passe au compte, ce que j’avais de toutes façons l’intention de faire, pour empêcher les enfants de s’en servir.

Création du compte des enfants

Afin d’éviter des prises de têtes supplémentaires, j’avais décidé que les deux bambins utiliseraient un unique compte Windows de type « enfant ». Celui-ci doit également être connecté pour que « Microsoft Family Safety Mes-Fesses » puisse fonctionner. Soit. On n’est plus à ça près.

Je crée ce compte. Il est possible de choisir : « cet enfant n’a pas de mail ». Très bien.

Et juste après, on me demande de spécifier une adresse mail !

J’ai été totalement WTF-isé. J’ai refait l’enchaînement des actions, j’ai essayé de voir s’il y avait des options ou des boutons que je n’avais pas vu, je n’ai rien trouvé de concluant. Je me suis peut-être trompé quelque part, mais il semblerait bien qu’on soit obligé d’avoir un mail même pour les comptes n’en ayant pas. Je suppose que c’est inévitable : si le compte doit être connecté, il faut forcément des informations d’authentifications, donc un mail.

Re-soit, j’en crée un.

Là je vous ais simplifié le récit. En réalité, j’ai tenté de créer le compte enfant et le compte parent en même temps. C’est à dire que la galère yahoo.fr / yahoo.com, je l’ai eu en double. Passons.

Je me retrouve finalement avec un compte enfant doté d’un nom à la con se terminant par « outlook.fr », qui s’affiche à l’ouverture de session et qu’on ne peut pas changer. De plus, il faut obligatoirement y associer un mot de passe. Super convivial ! Enfant_B a à peine 5 ans. Est-ce qu’on peut éviter de le faire chier à retenir un mot de passe, sachant que c’est ce qu’il fera à foison durant toute la suite de sa vie ?

Bon, c’est pas grave, re-« on n’est plus à ça près ». Je valide le tout et configure le contrôle parental dans l’interface idoine. Ça se passe assez bien, on peut configurer la durée et les plages horaires d’utilisation, des catégories de sites autorisés/interdits, une liste noire, une liste blanche. Je laisse la plupart des valeurs par défaut, les parents n’auront qu’à se démerder avec ces détails.

Edge deg’

Vient ensuite le moment du test.

Ah en fait non, je ne suis même pas arrivé jusque là.

Après avoir terminé la configuration, j’ai eu un petit message avertissant que le filtrage web ne fonctionne qu’avec le navigateur Microsoft Edge.

Les parents utilisent principalement Chrome et parfois Firefox (comme quoi ils ont un tout petit peu de culture informatique). En tout cas ils n’utilisent ni Internet Explorer, ni Edge.

Enculé de Family Safety de mon cul, et putasseries d’articles de top ten du contrôle parental. Vous pouviez pas prévenir dès le départ ? Je ne me serais pas pété les gonades à faire tout ça et je serais passé directement à autre chose ! Saloperie de merde de vieille pute camphrée de gangrène liquide de fasciite nécrosante de qksdmlf jksqmldj de mlkjmqlksdj de ʐʑʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡ ʢʣʤʥʦʧʨʩ ʪʫʬʭʮʯ de য়ৠৡৢৣ০১২৩৫ ৬৭৮ৰৱ৲৳৴৵৶৷৸ ৹৺৻ਁਂਃਅਆਇਈਉਊ !!!!!

At the edge of the world avec Microsoft Edge : au bord du gouffre.

Finalement

J’ai pris le deuxième choix du top ten : Norton Family.

C’est beaucoup plus simple.

La version gratuite est à usage illimité, et contient les fonctionnalités les plus indispensables. Tout est clairement listé ici (https://  family.norton.com/web/?ULang=fra).

Je me suis inscrit sur leur site avec une seule adresse mail, comme n’importe où ailleurs. J’ai finalement pris celui des parents, sinon j’allais craquer. J’ai installé l’application. Dans les paramètres de Windows, j’ai créé un compte local avec mot de passe pour les parents, et un compte local sans mot de passe pour les enfants. J’ai défini les correspondances avec les comptes Norton Family. Pour finir, j’ai configuré le filtrage web et la durée d’utilisation.

J’ai ensuite expliqué aux parents et aux enfants qu’ils devaient systématiquement verrouiller la session quand ils n’utilisent pas l’ordinateur. Pour les enfants, la connexion est assez facile, il suffit de cliquer sur leur compte, puis sur « se connecter ». Celui-ci a été intitulé Miss Tomate, le nom d’une des peluches d’Enfant_B. L’image d’avatar est bien entendu appropriée. Nous sommes dans le fun et le convivial.

Durant la config, j’ai eu un message signalant que je devais installer l’extension de navigateur de Norton pour que le web puisse être filtré. Vous allez rire : elle est disponible pour Firefox, Chrome, IE et quelques autres, mais il est bien indiqué qu’elle ne l’est pas encore pour Edge !

Comme quoi, le contrôle parental, c’est soit que du Edge, soit tout sauf du Edge. (Veuillez vous référer à mon flot de jurons précédent pour mon avis à ce sujet).

La nécessité de cette extension est malgré tout un gros point de faiblesse. Le jour où Enfant_A et Enfant_B s’y connaîtront un peu plus en informatique, il la désactiveront et ce sera open-bar. Je l’ai expliqué aux parents, je ne suis pas sûr qu’ils aient compris. C’est leur problème.

Je suis quand même étonné qu’il n’y ait pas moyen de mettre en place un filtrage web plus sérieux, avec une sorte de proxy local ou un bidule du genre. Quand je vais sur des sites de cul, j’ai comme par hasard mon Avast qui m’avertit que je pourrais masquer mon activité en ligne. C’est bien la preuve qu’une appli externe peut déterminer ce que je fais sur le web.

Tests et conclustion

Ça s’est bien passé.

Je me suis connecté avec le compte des enfants et suis allé sur un site de pr0n. Le tout premier blocage a pris quelques secondes, ce qui est un peu inquiétant, mais à priori, c’était juste le temps que l’extension s’initialise. Les autres sites que j’ai testés ont été immédiatement bloqué, sans « affichage d’aperçu ». Les saisies sur la plupart des moteurs de recherches sont également surveillées et filtrées.

Petit détail rigolo : les blocages de sites déclenchent un mail d’avertissement aux parents, ce qui les a quelque peu interloqués par rapport à mes tests.

« Enfant_A, Enfant_B, vous pouvez venir voir 5 minutes ? »

Il y a peut-être mieux que Norton Family, mais il n’y a certainement pas pire que Microsoft Family Safety. Durant toute la tentative d’installation et de configuration de cette merde, je me suis senti comme un cafard kafkaïen dans une bureaucratie tentaculaire et mécanique, balloté d’une administration à l’autre sans ménagement ni effort de compréhension. On râle souvent sur l’administration française, son absurdité et son amour de la paperasse. Mais les sociétés privés et l’informatique parviennent tout autant à nous faire ressentir le même sentiment de frustration.

Un jeu en PuzzleScript : Jesus Respawns

Un jour, j’ai eu une conversation avec un gamin (ouais, il m’arrive des trucs bizarres des fois). Il m’a dit : « je suis trop triste pour Jésus, parce qu’il est mort ».

J’aurais pu répondre que suivant sa logique, il aurait également dû être triste pour tous les autres humains officiellement considérés comme « gens bien » et qui sont morts depuis les derniers millénaires, mais j’ai décidé de faire simple. J’ai dit : « c’est pas grave, après il ressuscite. Il est un peu comme Mario Bros. Quand on perd la partie, on peut recommencer tout de suite après ».

D’oeuf-il-en-est-grille, je me suis retrouvé à créer un mini-jeu vidéo mettant en scène Jésus. On y retrouve une bonne partie de ses super-pouvoirs.

Le scénario tient en une seule phrase, mais qui vaut la peine, puisqu’elle comporte un jeu de mot : Jésus doit retrouver ses madeleines.

Ha ha ha ! Les madeleines-gâteaux et Madeleine la copine de Jésus. Jeux de mot ! Jeux de mot !

Vous pouvez y jouer ici (version française) .

Et ici (version anglaise) .

Le jeu de mot n’est pas présent dans le texte en anglais. Not my fault.

Ne vous attendez pas à des énigmes pointues et intéressantes. J’ai créé ce jeu pour proposer au gamin mentionné initialement une approche différente de la religion chrétienne. Parce que, honnêtement, le mec cloué sur sa croix en train de saigner, je trouve ça d’assez mauvais goût. Après on s’étonne que les enfants aient des pensées violentes dans la tête, et on dit : « c’est la faute aux jeux vidéos ». Eh bien non, pas forcément.

Un autre jeu avec Jésus dedans.

J’ai mis le code source sur mon github :  https://github.com/darkrecher/PuzzleSalad .

Vous y trouverez également un petit script en python, permettant de convertir des images en tiles PuzzleScript. Tout à l’arrache, pas documenté, débrouillez-vous ou foutez-vous en.

Jésus et ses potesses

Je vous ais déjà dit que j’aimais bien PuzzleScript ? Oui, je crois. Je vais essayer de m’investir plus dedans, à l’avenir.

Dead Cells : pas de backwalk dans le Cimetière du Val

Définition, please ?

En tant que jeux-vidéologue de renom, il est de mon devoir d’en nommer les éléments récurrents. Ceux-ci créent des codes techniques et narratifs, et démontrent que le jeu vidéo est un art au même titre que les autres.

C’est un peu comme les figures de style en littérature ou les différents types de prises de vue au cinéma (ralenti, traveling, plan subjectif, …).

Voici donc la définition du jour :

Le backwalk est un type spécifique de passage secret, placé en général au début d’un niveau, dans lequel le joueur doit faire demi-tour et découvrir une zone située à l’opposé du déroulement normal du niveau.

Désolé pour l’anglicisme du terme, ça fait tellement plus mieux.

La plupart des backwalks se trouvent dans les jeux de plate-forme 2D, pour lesquels le déroulement normal est intuitivement fixé de la gauche vers la droite. Le fait de penser à aller voir ce qu’il y a à gauche n’étant alors pas forcément évident.

Donkey Kong Country, sur la Super NES, en contient un exemple des plus typiques (https ://www .youtube.com/watch?v=whp2Y_MjTXs).

Il est assez amusant car la zone secrète correspond à l’endroit d’où sort le personnage. C’est à dire que celui-ci aurait pu de lui-même y prendre les bonus, mais il est manifestement trop stupide pour le faire. Le demi-tour du backwalk implique d’aller là où on n’est pas censé aller ; ce n’est pas forcément l’endroit où se trouvait précédemment le personnage, mais dans cet exemple, si.

Des jeux moins connus s’en sont également dotés, comme Targhan (https ://www .youtube.com/watch?v=EDqCQScMvj8).

Ce n’est pas réservé qu’aux jeux en 2D, puisqu’on en trouve un dans l’épisode « Lunar Apocalypse » de Duke Nukem 3D (https ://www .youtube.com/watch?v=6HKjYgd3Z4k).

Comme pour Donkey Kong, la zone secrète se situe à l’endroit d’où vient le personnage. Duke serait donc aussi peu malin qu’un singe pas bien malin. Heureusement que le joueur est là pour fournir sa propre intelligence.

Terminons ces exemples sur un cas un peu particulier : l’épisode 4 de Commander Keen (https:// classicreload.com/commander-keen-4-secret-of-the-oracle.html).

  • Le backwalk est dans la carte globale du jeu au lieu d’être dans un niveau.
  • Il n’est pas vraiment sous la forme d’un demi-tour. Il faut penser à explorer son propre vaisseau alors qu’on est censé aller dans des spots situés plus loin.
  • Il ne permet pas de récupérer des bonus, mais seulement d’accéder à un élément de narration environnementale : une image détaillée du vaisseau de Keen.

Et donc, dans Dead Cells…

le Cimetière du Val (le niveau juste avant le deuxième boss) semble comporter un backwalk. On démarre en sortant d’une maison-crypte. On à l’impression qu’il serait possible de monter sur le toit pour ensuite continuer à gauche et récupérer quelque menu fretin. Malheureusement, le personnage ne saute pas assez haut. Plus à droite se trouvent parfois des plate-formes en hauteur, mais trop éloignées pour être utilisées comme point de départ d’un grand saut horizontal vers la gauche.

Étant très fort et plein d’astuces, je me suis doté de deux objets spécifiques :

  • Une amulette ajoutant un saut supplémentaire : ça ne permet pas d’aller plus haut, mais de rester en l’air plus longtemps, ce qui est déjà ça.
  • Le fouet électrique : une arme avec une cadence de tir rapide, conférant une lévitation momentanée à chaque coup. (Je ne sais pas si c’est encore le cas dans les versions plus récentes du jeu).

Je suis alors parvenu à réaliser quelque chose de ce genre :

Et j’ai atterri in extremis sur le toit, tout heureux.

Puis j’ai continué à gauche, et là, déception, on est bloqué par un mur.

Attention spoilers : il y a quand même des backwalks dans Dead Cells, placés ailleurs. Je vous laisse les trouver.

Et sinon, toujours à propos de Dead Cells

J’aime beaucoup. Voici en vrac les éléments qui me plaisent.

1) Du pixel art et une ambiance glauque, constituant la marque de fabrique de deepnight, l’un des membres de la Motion Twin. Prenez le temps d’admirer le décor de fond, vous y verrez des instruments de torture d’un mauvais goût tout à fait assumé : dame de fer, pilori, chaise de Judas, …

2) Une capacité à créer un monde riche et cohérent, en employant très peu d’éléments narratifs et une parcimonie de dialogues (de toutes façons, le héros n’a pas de tête, il ne communique que par signes). Je vous invite à vous rendre dans le Sépulcre Oublié, pour une discussion courte, mais assez énigmatique.

3) Le fait que le jeu soit annoncé comme « non terminé » (même s’il reste totalement jouable et très intéressant), et que chaque mise à jour apporte, non seulement son lot de nouvelles armes et niveaux, mais également des ajustements d’équilibrage, de gameplay, etc.

Ça prouve qu’ils travaillent intensément à peaufiner les moindres détails et à offrir des dizaines de styles de jeux possibles et viables, qui vont bien au-delà du choix « arme à courte portée / arme à longue portée ». Ce n’est pas les premiers créateurs à avoir ce genre de démarche, mais je le signale quand même.

4) Les « suspensions d’incrédulité » spécifiques au média du jeu vidéo ont été intégrées dans le scénario :

  • les niveaux sont générés plus ou moins aléatoirement -> un personnage explique au début que « cette île change constamment de forme ».
  • le héros meurt à chaque fin de partie -> on ne dirige pas exactement ce héros, mais une espèce de masse verdâtre qui prend le contrôle d’un corps, que l’on suppose ne pas être le même à chaque fois.

Ça m’a un tout petit peu fait penser à la manière dont Planescape Torment a pris en compte le thème de la mort, même si on en est très loin, car ce n’est pas le même jeu, pas le même budget et pas les mêmes prétentions.

Voilà

Et comme toujours, on finit sur quelque chose de sympathique. J’ai bien vu que les petites onomatopées du schéma de saut vous avaient plu. Voici donc à nouveau une image qui fait « dzoïng ».

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.