Aller au contenu

Code, hidden language (2nd edition)

·888 mots·5 mins
Auteur
My name
A little bit about me

Au commencement était les codes morse et braille, en suivant l’analogie de la lumière et de la nécessité de communiquer en complexifiant de plus en plus l’environnement: d’abord avec une personne en face de nous, et la possibilité de nous faire comprendre avec une seule lampe torche et un dictionnaire de correspondance, après quoi il faut pouvoir communiquer avec quelqu’un parallèle à nous, via quelques mécanismes de base de lampes.

C’est super bien amené, je n’ai jamais lu une synthèse aussi concise et claire de l’algèbre de Boole, avec sa représentation lumineuse sur un circuit électrique. Les analogies sont claires et bien expliquées, avec des beaux schémas plein de couleurs et des explications qui nous prennent par la main pour le plus grand bonheur de mon cerveau qui peut enfin se dégourdir les neurones sans être pris pour un demeuré.

On voit aussi la loi de De Morgan sur les inventeurs, la définition des six portes logiques classiques, tout cela sur base du fonctionnement d’une ampoule 💡 et d’un début de circuit logique.

Après cela, les systèmes numériques sont amenés: le plus simple étant le bit. En retirant le 1, on se retrouverait avec uniquement des 0, ce qui ne permettrait pas d’aller très loin. Le nombre de bits étant directement lié au nombre de codes possibles, on a droit à une introduction succincte aux logarithmes, aux codes barres, UPC, Quick-Response (QR) codes et leurs structures associées. Ce qui est marrant, c’est de découvrir que beaucoup de ces bits sont dédiés à la correction (ou détection) d’erreurs: un code UPC contient 95 bits, mais est en fait représenté par 113 bits, pour avoir un guard pattern. C’est pareil pour un QR code: nous avons potentiellement 25*25 bits (= 625) disponibles, mais dont un tiers seulement est réellement dédié au stockage d’informations: chaque QR contient trois grands blocs (les Finder patterns), un bloc moyen sur le bas à droite (« alignment pattern »), auxquels s’ajoutent un « timing pattern » (qui permet de déterminer le nombre de modules - la version 40 des QR codes autorise 177 modules horizontales et verticaux), un « format information », le nombre de caractères composant les données, etc.

Ensuite, cela bascule vers les différents types d’encodage (en commençant par Charles Baudot (d’où le terme de « bauds »), l’ascii, puis l’ANSI comme extension proposée par Microsoft dans sa première version de Windows, qui a ensuite été approuvée comme norme iso (la 8859-1, ou alphabet latin numéro 1), qui a lui-même été étendu pour devenir l’encodage Windows 1252. Arrive ensuite Unicode (dont les réflexions de base datent de 1988 hein, c’est pas récent non plus). Comme Unicode est codé sur 16 bits (= 2 bytes), il a été nécessaire de définir un « Byte Order Mark) correspondant à la valeur U+FEFF, pour savoir si la machine de destination était en big endian ou little endian. Tout un programme qui ne posait finalement aucun soucis lorsque les caractères étaient sur 7 bits (ascii) ou 8 bits (ansi) 😋. L’apothéose étant présentée par UTF (Unicode Transformation Format), représentant les caractères Unicode sur un ensemble fixe de bits. UTF8 est le plus connu, est utilisé par 97% des sites web (de 2021) et représente le meilleur ratio compacité vs pureté (puisqu’utf8 demande des opérations sur les bytes, sachant que les 32 bits d’UTF-32, seuls 21 bits servent à représenter l’ensemble des caractères mondiaux).

Addition is the most basic of arithmetic operations, so if we want to build a computer (and that is my not-so-hidden agenda in this book), we must first know how to build something that adds two numbers together. When you come right down to it, addition is just abou the only thing that computers do. If we can build something that adds we’re well on our way to building something that uses addition to als subtract, multiply, divide, calculate mortgage payments, guide rockets t Mars, play chess, and use social media to share our latest dance move kitchen feats, or pet antics. The adding machine that we’ll build in this chapter will be big, clunk slow, and noisy, at least compared to the calculators and computers of mo ern life. What’s most interesting is that we’re going to build this addi machine entirelv out of simple electrical devices that we’ve learned abo in previous chapters-switches, lightbulbs, wires, a battery, and relays tr have been prewired into various logic gates. These components were available prior to the 20th century. And what’s really nice is that we do have to acrolivomit-rustenci. ur living rooms; instead, we can bu

On en arrive à réaliser un mécanisme d’additions de deux registres de 8 bits avec un résultat sur 16 à partir de portes logiques. Puis au début d’arithmétique computation elle de Charles babage, continuées par Augusta Ada Byron Lovelace, pour finir sur les architectures de von Neumann.

Aux alentours de la page 220, j’ai un peu décroché, mais les termes restent toujours valables et restent extrêmement bien expliqués. Comme dans la plupart des livres scientifiques, il est important de bien suivre les concepts expliqués au fil des chapitres, ou de les utiliser comme reminders. Mais évitez de sauter des pages 😉 - J’avoue avoir sauté les chapitres 17 et 18 sur la construction d’une horloge, qui est pourtant l’un des objectifs principaux du livre 🙃

Voir aussi [https://codehiddenlanguage.com/].