Kassandra a un tatouage sur son épaule. Un symbole chinois qui signifierait « amour ». Ce conditionnel est assez effrayant. Il y a des arnaqueurs partout ! Peut-être que ce symbole signifie autre chose : touriste, idiote, charrue.
Je passais cette réflexion à Weby quand elle me confie comme ça qu'elle aimerait se faire tatouer un code-barre.
Un code barre !!!
Évidemment, avec les ados, il faut faire très attention. Répondre outrée par un « Veux-tu par ce tatouage démontrer que tu acceptes d'être considérée comme de la marchandise ? » pourrait être perçu comme une opposition et, par conséquent, par provocation, pousser à l'acte. Il faut être plus astucieux.
- Qu'y coderais-tu ?
C'est vrai quoi. S'il faut avoir pour le reste de sa vie un code-barre sur son corps, aussi bien en prendre un signifiant... et s'assurer que le tatoueur ne fait pas une barre de trop !
Comment ça marche ?
Il existe plusieurs normes de codes-barres. On en connaît naturellement trois. Les codes-barres des articles que vous achetez (CUP en Amérique du Nord (code universel des produits, UPC en anglais), EAN en Europe), les codes-barres postaux de votre courrier, les codes ISBN des livres, mais il y en a d'autres.
Les premiers codes-barres datent de 1949. Un marchand américain cherchait une façon d'automatiser l’inventaire. Il a fallu cependant attendre 1969 pour que la technologie permette leur utilisation de façon efficace, c'est-à-dire que IBM développe un programme permettant de lire grâce à un laser (de 1 mW) le code et de soustraire l'article de l'inventaire.
Essentiellement, le code-barre des marchandises est un nombre binaire où le 0 est un espace, le 1 une barre de 0,5 mm d'épaisseur. On comprendra que l'épaisseur des traits est importante pour le décodage. Le laser éclairant le code sera plus ou moins réfléchi selon qu'il frappe une barre noire ou un espace blanc. Le décodeur amplifie ce signal réfléchi et selon l'excitation de la mini cellule photoélectrique traduit la barre en 1, l'espace en 0 et reconvertit chaque bloc de 7 chiffres binaires en code ASCII qui peut ensuite être traité par un ordinateur.
Ainsi, si je voulais coder narcissiquement MISSMATH, je devrais convertir chaque lettre en son code ASCII et ce nombre en binaire (le tableau ci-dessus offre les deux).
Prenons le temps de décortiquer le tableau.
M est le 77e caractère défini dans le code ASCII (American Standard Code for Information Interchange). Comme somme de puissances de 2 :
77 = 64 + 8 + 4 + 1 = 26 + 23 22 20
= 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20
= 1001101base 2
D'où :
M = 1001101
I = 1001001
S = 1010011
A = 1000001
T = 1010100
H = 1001000
MISSMATH =
1001101 1001001 1010011 1010011 1001101 1000001 1010100 1001000
Le hic, quand est-ce que ça commence, quand est-ce que ça finit ? Il vaudrait mieux avoir des balises pour indiquer le début et la fin du code. Posons des barres de garde, plus longues au début et à la fin (barre-espace-barre ou 101) (et pourquoi pas entre les mots (01010)).
Si vous avez l'oeil, vous constaterez que les générateurs de codes-barres ajoutent des barres. Des arnaqueurs ?
Sans doute y a-t-il répétition du code afin de corriger les erreurs de lecture ou pour permettre la lecture dans les deux sens. Il n'en demeure pas moins que je ne retrouve pas la symétrie et que j'ai du mal à retrouver le codage. Mettons que j'hésiterais à me faire tatouer ça sur l'épaule.
Les codes-barres pour les marchandises (EAN, UPC) sont construits de la même manière.
Code de repérage, une série de 5 ou 6 chiffres correspondant au produit ou deux séries (séparées par deux barres) (manufacturier + produit), puis un chiffre de contrôle en début et/ou en fin de code.
Dans la norme CUP, le chiffre du début indique la catégorie de produit. 0, 6, 7, 8 pour des produits ordinaires, 2 pour des produits vendus au poids, 3 pour des produits pharmaceutiques (enfin, en faisant l'inventaire de mes quelques produits pharmaceutiques, j'ai des doutes sur la différence entre 0 et 3. Crème solaire = 0, tampons alcoolisés = 3, comprimés contre la toux = 0, sparadrap = 0, peroxyde = 0). En norme européenne, le pays d'origine (00 à 13 pour l'Amérique du Nord, 30 à 37 pour la France, 54 pour la Belgique, ...).
Le dernier chiffre inscrit est un point de vérification.
On le calcule avec la formule :
ci étant le i-ème chiffre du code.
pi étant égal à 1 si i est impair, 3 si i est pair.
Allons-y avec un exemple.
Le code-barre de ma nouvelle bouteille d'encre est 0 94376 89643 X.
X étant le chiffre mystère qu'il nous faut calculer.
0 : Produit ordinaire, même si le violet de cette encre est extraordinaire. Ce chiffre ne compte pas.
Allons y :
9*1 + 4*3 + 3*1 + 7*3 + 6*1 + 8*3 + 9*1 + 6*3 + 4*1 + 3*3
= 115
115 modulo 10 = 5
(115 divisé par 10 égale 11 reste 5. Le modulo, c'est le reste de la division.)
10 - 5 = 5, voilà la valeur cherchée. Que dis-je, la valeur inscrite !
Diantre, si j'enseignais au primaire, je ferais faire ça comme exercice d'arithmétique !
Vérifier la validité de ce code-barre :
2+3+2+9+4+15+6+21+8+27 = 97
97 mod 10 = 7
10 - 7 = 3
Le compte est bon !
Vérifier la validité du code de cette cartouche d'encre :
2+27+1+18+0+27+7+6+8+12 = 108
108 modulo 10 = 8
10 - 8 = 2.
Arggggg... pourquoi il est inscrit 8 sur le code ?
Est-ce une arnaque ?
Les codes-barres s'appellent également codes linéaires, car ils peuvent être lus sur une ligne. Ils ont une dimension. Mais pourquoi ne pas jouer sur deux dimensions ?
On les appelle code matriciel et le standard qui devient à la mode, les codes QR (quelqu'un m'avait dit QR pour Question-Réponse, mais c'est pour Quick Respond, réponse rapide... enfin pour qui a le décodeur sur lui !)
Avec l'arrivée des téléphones dits intelligents, la reconnaissance de ces matrices de points noirs et blancs peut être faite et par la magie de la télécommunication conduire à du texte, des cartes professionnelles, des numéros de téléphone ou un site web.
Le principe est le même que pour les codes-barres. Un point noir = 1, un point blanc = 0. Le sens de la lecture est donné par des carrés spéciaux dans trois coins.
Un code QR peut contenir plus de 4000 caractères alphanumériques. Plus de 7000 numériques (on code alors sur moins de bits). Pour les meilleurs, jusqu'à 30 % du code perdu peut être récupéré (Reed-Salomon). Ce qui peut être pratique d'un point de vue marketing, puisque cela permet d'ajouter des erreurs dans le code (image) ou... de polluposter !
Cependant, le potentiel des codes QR s'avère intéressant dans plusieurs domaines et particulièrement en éducation.
Évidemment, cela exige un décodeur et un appareil photo, bref un téléphone intelligent... qui dit, après la mode des petits tatouages, que ce ne sera pas la norme dans quelques années ?
En guise de conclusion :
Aviez-vous remarqué que dans les 128 premiers caractères ascii ne codent pas les jolis lettres accentuées ?
Prochaine étape, les codes à 3 dimensions.
Sauf qu'alors, il sera plus difficile d'en faire un tout petit tattoo sur son épaule.