Code, hidden language (2nd edition)
Publié le 19/02/2023

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