Là encore une fois Ben Eater nous fait rêver avec ces deux excellentes vidéos en explorant la conception hardware d’une carte graphique à partir de zéro. En d’autres mots From the ground et en utilisant un nombre réduit de composantes logiques simples de la série TTL 74 il arrive sur quelques breadbord à générer le signal analogique pour une image fixe de résolution 800×600 de fréquence 60 Hertz sur un connecteur VGA, qui est actuellement très répondu dans la majorité des moniteurs.
C’est vrai que sur un point de vue
technique la carte est loin égale à la puissance des dernières
cartes graphique, mais sur un plan académique c’est une pure
merveille, elle permet avec toute simplicité de démonter les
concepts de base de la création d’une carte graphique pour des
amateurs et des étudiants avec un niveau de première ou deuxième
année universitaire, il devient même très intéressant de la
mettre en mini-projet un de ces jours sachant que tous les composants
sont simples à trouver chez les vendeurs d’électronique.
La vidéo suivante est une sorte d’état de l’art sur la conception hardware et l’architecture des ordinateurs, le terme état de l’art dans la recherche scientifique fait référence à un résumé sur l’historique de l’évolution d’une technologie donnée englobant le plus souvent les deux aspects; recherche et commercial, ça couvre généralement les principales avancées technologiques, en habituellement une perspective sur les principales voies d’évolution future possible pour cette technologie. Ainsi cette vidéo est plutôt orientée aux chercheurs et experts dans le domaine de la conception hardware plus qu’aux étudiants en première et deuxième année informatique, néanmoins c’est une excellente vidéo dans le sens qu’elle permet de casser la vision pompeuse des messages publicitaires des firmes technologiques comme Intel, AMD ou Nvidia, et met en évidence les réelles limitations des architectures actuelles.
La présentation est faite dans la conférence Google I/O organisée annuellement par Google, et c’est présenté par celui qui est déjà mentionné dans le titre John Hennessy, un monument dans le domaine, pour ne pas dire le monument. Dans le domaine académique, il est connu surtout pour ses livres références coécrits avec David Patterson; Computer Organization and Design et Computer Architecture: A Quantitative Approach, littéralement les deux références dans le domaine. Il est aussi connu pour être pour plusieurs années le président de l’université de Stanford. Mais au-delà de ça il est surtout connu dans la recherche pour avoir développé le modèle RISC des processeurs qui représente aujourd’hui 99% des processeurs modernes, ce modèle lui a permis de fonder la société MIPS Technologies responsable de la fabrication des fameux processeurs MIPS, ces travaux lui ont valu avec David Patterson en 2017 le prestigieux prix de Turing, l’équivalent du prix Nobel en informatique. Actuellement il est le président de Alphabet Inc. maison mère de Google.
Le breadboard, ou maquette de prototypage en Français, est un dispositif comme son nom l’indique permet de faire le prototypage des circuits électroniques, c’est très pratique dans le sens où ça permet aux électroniciens, aux étudiants ou aux amateurs de tester leurs circuits très rapidement sans avoir construire un PCB (carte électronique) et souder les composants, c’est comme en programmation, un programme a besoin de débogage, en électronique un circuit a besoin de prototypage. La vidéo suivante est un très bon tutoriel pour comprendre comment utiliser le breadboard.
Samy Kamkar est le nom d’un ancien hacker très reconnu, actuellement c’est un expert et consultant en sécurité informatique et vie privée. Samy Kamkar était surtout connu dans sa jeunesse comme le hacker qui a créé le worm ou le virus avec la propagation la plus rapide de tous les temps, c’était le worm Samy, consistant à infecter le réseau social MySpace en 2005, à une époque où il n’y avait pas encore FaceBook et et que MySpace était l’un des sites les plus populaires au monde, même plus que Google. Le virus en question était relativement inoffensif, mine de rien il a causé le shutdown (arrêt temporaire) de MySpace et interpellation de Samy par les services secrets américains avec une punition de ne pas approcher d’appareils informatique ni d’internet pour une période de 3 ans.
Samy Kamkar est aussi connu pour l’invention de l’un des hacks actuellement les plus célèbres dans le monde du jeu vidéo, c’est le wall-hack (wall c’est mur en Français), un hack qui permet aux joueurs de tricher dans les jeux multijoueur online. Le wall-hack littéralement permet au tricheur de scanner les murs et de voir la position des adversaires cachés derrière les murs, l’image en haut est un exemple d’un wall-hack dans le jeu Counter Strike. Justement, c’est sur le jeu Counter Strike que Samy Kamkar a eu l’idée de créer ce hack, lors d’une de ses parties il a r emarqué que le son des pas de ses adversaires pouvait être entendu derrière les murs sans autant les voir, il a eu la clairvoyance de constater que l’information sur ses adversaires en réseaux puisque il arrive à les entendre, est sans doute parvenue à sa machine, il lui suffisait juste de chercher cette information sur la RAM de la machine en utilisant l’un des programmes appelés moniteurs. Ces programmes permettent la visualisation des données brutes en temps réel des logiciels s’exécutant dans la RAM, un travail d’investigation et d’analyser des données brutes est nécessaire pour trouver la position des joueurs adverses, Samy alors a eu l’idée d’observer que le son des pas entendu est stéréo sur deux baffes, si le joueur était à droite la baffe de droite émettait un son plus intense que celle de gauche et inversement, il a réussi à trouver les valeurs d’intensité des deux sons dans le tas de données, et avec un simple calcul de triangulation géométrique il a pu extraire la position du joueur adverse.
Le hack en soi reste un sujet très controversé, en raison qu’il peut effectivement être utilisé pour des fins maléfiques, comme par exemple le piratage, l’accès à des informations privées et confidentielles, le détournement d’argent et systèmes de paiement, les cybers attaques, la tricherie…etc. Mais pour d’autres c’est un phénomène culturel qui ne concerne pas que l’informatique, mais plutôt l’aspect lorsqu’un individu apprécie le challenge intellectuel de créativité surmontant les limitations d’un software, d’un appareil, d’une machine…etc, afin d’arriver à des fonctionnalités nouvelles plus innovantes (c’est la définition donnée sur Wikipédia). Certains pensent que l’esprit de cette culture est fidèlement et simplement représenté par l’ancienne série télévisée MacGyver. Dans tous les cas le hack généralement implique l’utilisation d’un système d’une manière autre que celle qu’il a été développé à la base pour avoir des fonctionnalités nouvelles, pour le faire le hacker doit avoir une compréhension approfondie et accrue du système.
Sur la vidéo en haut Samy Kamkar donne quelques conseils et directives sur la méthode et les outils nécessaire pour faire du hack matériel et le reverse engineering. La vidéo est une interview de Samy Kamkar donnée à la suite de la conférence tenue par l’association hackaday, dans laquelle il a présenté un hack sur les clés intelligentes de voiture (en Anglais key fob ou smart key), c’est le type de clés qui permettent de déverrouiller sa voiture en étant à proximité de celle-ci sans avoir à utiliser la clé, d’allumer automatiquement les feux, et d’autres fonctionnalités.
Il est bien connu dans la culture informatique que Linux dispose d’un terminal (appelé aussi invite de commande) très puissant et très populaire. Le terminal est littéralement l’interface textuelle permettant à l’utilisateur de commander son système d’exploitation, en d’autres mots ça permet de manipuler l’ordinateur en tapant des commandes. Techniquement parlent cette interface est appelée CLI pour Commad-Line Interface, contrairement à l’interface la plus répondue actuellement qui se base sur l’utilisation de la sourie pour interagir avec une interface graphique constituée de boutons, des barres de défilement, d’onglets, de fenêtres…etc, qui est elle appelée GUI (pour Graphical User Interface).
La vidéo en déçus correspond à un petit tutoriel d’introduction au terminal de Linux, réellement Linux en dispose de plusieurs terminaux, la vidéo présente l’un des plus célèbres entre eux qui est le bash, avec lequel il est même possible de programmer des scripts. Vous pouvez pratiquer en parallèle avec le tutoriel sans avoir à installer Linux ni de machines virtuelle avec le shell online cb.vu(shell est une autre appellation pour invite de commande).
Un petit mot de l’inventeur de l’un des plus célèbres langages de programmation qui est le C++. La vidéo suivante est une interview de Bjarne Stroustrup l’inventeur et le concepteur du C++. À travers les questions posées, Bjarne Stroustrup expose sa vision et les motifs qui l’ont poussé à créer le C++, il met aussi en évidence le point fort du langage par rapport aux autres, qui est sa robustesse par le fait qu’un programme écrit dans ce langage peut tenir des dizaines d’années sans anomalie ou avoir besoin de l’entretenir ou de le changer.
Le jeu du Sudoku est un jeu de puzzle
populaire sur certains journaux et magazines, il est représenté sur
l’image en bas, globalement il se constitue d’une grille de 9×9 cases
partiellement remplies par des chiffres de 1 à 9, la grille est
aussi subdivisée en 3×3 carré de 3×3 chiffres, le joueur doit
remplir le reste des cases vides restantes en respectant la règle
qu’il ne doit pas y avoir de répétition d’un chiffre sur une
colonne, sur une ligne ou sur le carré 3×3.
Les règles sont simples mais le casse-tête demande beaucoup de temps à l’humain pour le résoudre, et pourtant c’est déconcertant comment un programme d’une poignée de lignes de code arrive à résoudre le problème sur ordinateur en une fraction de seconde, dans la vidéo qui suit l’enseignant s’exulte de la magie de la récursivité, et c’est d’autant plus vrai que la récursivité est une technique de programmation réputée difficile à apprendre mais très efficace une fois maîtrisée. Il n’était par rare dans les examens d’algorithmique que j’ai eu à corriger de tomber sur des problèmes difficiles à résoudre par les méthodes conventionnelles (par boucles et tests) alors qu’ils devenaient très simples en récursivité.
Linus Torvalds, un grand nom dans l’informatique moderne, l’inventeur du fameux Linux, l’un des softwares les plus utilisés actuellement dans le monde, quoiqu’il ne prédomine pas dans le secteur des PC, sa diffusion dans le secteur des serveurs est colossal, le marché des tablettes et smartphones est de même notamment en relation avec système Android construit sur une base Linux, sans oublier les différents systèmes embarqués à base de Linux comme les téléviseurs, les consoles de jeux, les routeurs, les DVR…etc. Il aussi peu connu que Linus Torvalds est l’initiateur du logiciel de gestion de versions Git utilisé pour le développement distribué de logiciels sur des dépôts comme GitHub par exemple.
Linus Torvalds a fait une interview sur la vidéo en bas, organisée au sein d’une conférence pour la fondation TED, la fondation est responsable de la mise en ligne gratuitement d’interventions (talks en Anglais) par différents acteurs dans des domaines divers comme la science, la technologie, l’éducation, la politique…etc. Dans l’interview Linus Torvalds revient sur le déroulement de la création de Linux et de Git, sur son implication dans le monde et la philosophie open source parce que à l’époque c’était un peu par hasard, il parle de sa manière de travailler, de sa vision concernant l’innovation et l’invention et de tout autres choses. C’est une vidéo très riche sur homme qui l’est d’autant plus.
Il est bien connu que d’un point de vue académique les réseaux informatiques sont représentés comme un graphe au sens mathématique, donc plusieurs nœuds interconnectés par des liaisons pour transmettre l’information d’un nœud à l’autre. Les nœuds globalement sont de deux types; les terminaux, comme les PCs, les serveurs, les tablettes ou smartphones, formellement ce sont la source de l’information (serveurs) ou consommateurs d’information (PCs, téléphones). Et le deuxième type sont les nœuds internes de transmission et irrigation de l’information qui sont les routeurs, les switchs, et les hubs. Probablement un informaticien aura un jour ou l’autre à manipuler et utiliser ces dispositifs, il est important de bien saisir leurs manières de fonctionner, la vidéo suivante démontre en illustration la différence entre les trois dispositifs, avec les points forts et faibles de chacun. Cette vidéo est de l’excellente chaîne éducatif sur les technologies en informatique PowerCert.
Il est étonnant aujourd’hui que la racine carrée est facilement calculée en utilisant la calculatrice ou d’autres appareils électroniques sophistiqués, mais serait-il possible pour quelqu’un de la calculer manuellement sans utiliser de machine, pour les informaticiens il existe les méthodes dites numériques permettant de la calculer avec des opérations simples comme l’addition, la soustraction, la multiplication, et la division. Il existe aussi d’autres méthodes mathématiques pour approximer sa valeur (voir wikipédia), néanmoins j’ai été étonné par la simplicité de la méthode géométrique démontrée dans la vidéo suivante, datant de l’époque de la Grèce antique la méthode est extrêmement facile ainsi que sa démonstration géométrique. La vidéo aussi présente une autre méthode aussi géométrique et simple pour calculer la multiplication.