Mémoriser l’information est l’un des
atouts principaux d’un ordinateur, il a une faculté énorme de
mémoriser l’information pour des périodes très très longues, sur
ce terrain il bat l’humain à plein couture, un seul disque dur peut
mémoriser l’équivalent d’une montagne de livre sans oublier la
moindre lettre, alors que la mémoire humaine en comparaison est très
faible et moins fiable.
SSD vs HDD
À l’intérieur d’un ordinateur on trouve généralement deux types de mémoires, les mémoires vives, appelées aussi mémoire centrale ou RAM, c’est une mémoire temporaire utilisée lorsque l’ordinateur est en état de marche. Les deuxièmes sont les mémoires mortes ou mémoires secondaires, ça inclut disque dur, la mémoire flash, les CD-ROM, DVD…etc. Leurs capacités sont beaucoup plus grandes que la mémoire vive, par contre elles sont utilisées pour un stockage permanent de l’information, et c’est surtout important lorsque la machine est éteinte. La vidéo en haut fait une comparaison entre les deux technologies contemporaines de disque dur qui sont le HDD et le SSD.
C’est toujours compliqué de dire qu’un langage est mieux qu’un autre, ou qu’un langage est mauvais, mais généralement les informaticiens se référent à deux métriques pour comparer les langages, la première est le domaine d’utilisation, il y a des langages qui sont bons pour certaines applications mais qui sont mauvais pour d’autres, il n’existe pas de langage parfait pour tous les domaines, par exemple le C est relativement bas niveau, il est ainsi bon pour les systèmes d’exploitation et les systèmes embarqués, le C++ est réputé pour sa robustesse est son efficacité pour les systèmes complexes, le Python est pour ça par plus simple à apprendre et optimal pour le scripting et le datascience, le JavaScript pour le web…etc.
Et la deuxième métrique est l’appréciation intellectuelle pour certaines
mécaniques dans certains langages en comparaison à d’autres. Sur un
niveau personnel le programmeur peut se trouver à apprécier un langage
qu’un autre, il lui paraît plus simple et plus intuitif à utiliser et
les mécaniques que le langage offre sont plus adaptés au déroulement de
son processus intellectuel de programmation que d’autres.
Top 10 meilleurs langages de programmation pour 2020
Ainsi faire un classement pour les langages de programmation d’une façon neutre est très difficile, l’auteur de la vidéo en haut s’est donc référé à un site qui fait d’une manière automatique l’extraction de statistique d’utilisation des langages sur GitHub, étant donné qu’actuellement c’est le dépôt de code source le plus important au monde, avoir un aperçu sur les statistiques d’utilisation permet d’avoir un aperçu global sur les tendances d’utilisation des langages. Le site en question est GitHut, vous pouvez le consulter et voir l’évolution des langages même sur les années précédentes.
C’est bien connu, l’université d’MIT (Massachusetts Institute of Technology) est l’une des universités les plus prestigieuses au monde, cette université est beaucoup plus connue pour ses influences dans en technologie, notamment en informatique et en électronique, cependant notre vidéo pour cet article est axée sur une branche en mathématique analytique qui traite les intégrales. Ce n’est un pas un cours ni un domaine de recherche mais plutôt un concours entre étudiants généralement de premier cycle, pour la rapidité de résolution d’intégrales le plus souvent enseignées dans les cours d’analyse en première et deuxième année.
La finale de MIT Integration Bee
L’université d’MIT fait ce genre de concours depuis maintenant 40 ans, c’est appelé précisément Integration Bee et voici le lien des derniers concours en date. Je trouve personnellement que c’est très stimulant et très bénéfique pour les étudiants ce type de concours, ça leur permet d’aborder des concepts en mathématiques qui sont réputés très abstraits et difficiles, alors que la compétition prend les mathématiques d’un autre angle qui les rend beaucoup plus appréciables. De mémoire les étudiants à fin d’apprendre les intégrales devraient exercer sur des séries de plusieurs dizaines problèmes, à force de les résoudre ils acquirent de l’expérience et une certaine habilité pour trouver le bon acheminement d’étapes pour aboutir au résultat, ce qui à mon avis rend le procédé un excellent candidat pour la compétition.
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.
Carte graphique en TTL 74 – première partie
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.
John Hennessy sur le future des architectures matérielles
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.
wallhack dans Counter Strike : Global Offensive
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.
Reverse Engineering avec RSamy Kamkar
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).
Tutoriel basique sur les commandes Linux
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.
Une grille vide de Sudoku
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é.