La nouvelle génération des disques durs SSD M.2 NVMe

Il est bien connu que les disques durs mécaniques HDD à base de technologie magnétique tendent à disparaître, et sont replacés peu à peu par les disques durs SSD (pour Solid State Drive) à base de technologie à mémoire flash, en raison de plusieurs avantages comme la rapidité, la robustesse, l’encombrement, la consommation…etc. Malencontreusement la technologie SSD fait actuellement face à un problème hérité des disques durs HDD, qui utilisent l’interface SATA et le protocole AHCI conçus au départ spécifiquement aux disques durs HDD mécaniques et qui ne deviennent plus optimaux pour la technologie flash, d’où l’émergence de la technologie SSD M.2 NVMe (M.2 étant le l’interface et NVMe le protocole). La vidéo suivante explique plus en détail cette nouvelle technologie.

Disques durs SSD M.2 NVMe

Le Processeur éducatif nommé Scott

À cette période de l’année, à l’université, c’est le summum, le sommet de la course vers la quête de l’apprentissage pour les étudiants. J’ai pu visualiser récrément une excellente vidéo sur le thème qui intéresse particulièrement les étudiants du Module Architecture des Ordinateurs, la vidéo en bas est plus centrée sur la micro-architecture, le narrateur explique le fonctionnement interne d’un processeur, avec en plus son interaction avec les autres composants d’un PC, comme la RAM, le moniteur et le clavier.

Processeur de l’intérieur

Le processeur en question est le processeur Scott, c’est un processeur académique développé par John Scott, le processeur reste comme un processeur simpliste par rapport aux processeurs actuels, mais les concepts de base restent les mêmes. John Scott a probablement acquis les bases de la conception Hardware et la conception des processeurs tout au long de sa carrière en travaillant à la silicon valley dans des entreprises comme Intel et IBM. La conception de ce processeur a abouti au final à un livre ; But How Do It Know? – The Basic Principles of Computers for Everyone, plusieurs autres éléments et informations sont accessibles sur le site consacré à ce livre, www.buthowdoitknow.com

Arduino cheat sheet

Le terme cheat sheet désigne littéralement en Français feuille de copiage, quelque chose que les profs méprisent particulièrement, mais dans ce cas-ci c’est pour la bonne cause. Les cheat sheets ou encore appelés quick refererece ou encore memento, sont généralement des images de grande taille contenant l’essentiel et juste nécessaire formules, concepts ou règles pour un domaine scientifique ou une technologie donnée. Par exemple pour les 2 cheat sheets d’Arduino en bas on trouve les principales formes d’instruction de programmation d’Arduino (quasi identique au C++), les bibliothèques, les caractéristiques matérielles…etc., c’est juste pour titre référentiel ou pour s’en rappeler mais pas pour apprendre ou maîtriser cette technologie. Les cheat sheets y on a pour tous les domaines, mathématiques, physique, chimie, électronique, langages de programmation…etc. Cliquez sur l’image pour agrandir, et utilisez le zoom pour le PDF

Arduino cheat sheet
Arduino-cheatsheet

Le processeur MOS 6502

Personnellement le processeur MOS 6502 est l’un de mes processeurs préférés, pour plusieurs bonnes raisons à mon point de vue, c’est un processeur 8 bits relativement simple avec un jeu d’instructions en tout de 56 instructions, qui en dépit de sa simplicité reste un processeur robuste avec des mécanismes dans son assembleur qui le rendent plus puissant, notamment ses douzaines (ou plus) de modes d’adressage. Le 6502 est aussi un processeur avec un énorme succès commercial, notamment son intégration dans d’importantes machines des années 80, comme le Apple-1, le Apple-2, Commodore PET et 64, la Nintendo NES, Atari 2600…etc. La vidéo en bas est celle d’une conférence sur le processeur, elle est présentée par un nom bien connu dans le domaine du hack du Hardware rétro, c’est Michael Stail (voici son blog), actuellement il est entrain de développer le noyau software d’une nouvelle machine rétro appelée Cammander X16 (plus de détails sur le lien).

Il faut savoir que la présentation est technique, destinée principalement à des connaisseurs dans le domaine, des fins d’études, des doctorants/chercheurs, des hackeurs…etc. Une bonne partie ne serait pas totalement compréhensible par des étudiants de 1-ière ou 2-ème année, mais ça reste toujours une excellente présentation pour avoir une petite idée sur le processeur 6502 et le Hardware en général. La présentation traite trois parties, la 1-ière est celle de l’architecture du processeur, les registres programmables, le jeu d’instructions, les modes d’adressages…etc., ce qui se fait généralement dans un module d’Architecture des Ordinateur. La 2-ème est celle de la microarchitecture, concernant la construction matérielle interne du processeur, sachant qu’un grand travail de reverse engineering a été fait sur le processeur pour comprendre sa microarchitecture, puisque à la base ce processeur est commercial et sa microarchitecture n’a jamais été rendue publique. Et dernièrement, l’extraction des connaissances et l’expertise du fonctionnement du processeur, et une compréhension poussée de son fonctionnement au-delà de son manuel, en créant un simulateur du processeur au niveau transistor (lien du simulateur online), comprendre les bugs hardware et les instructions non documentées…etc. Bon visionnage.

Programmation online des machines rétro

La programmation sur des machines anciennes est très en vogue ces derniers temps, c’est une manière très particulière et plaisante de programmer, dans le sens où la programmation est de très bas niveau, pas de langage évolué, le plus souvent c’est de l’assembleur, le langage C au plus, ça implique aussi une maîtrise totale de l’architecture, car il n’y a pas de système d’exploitation ni de pilote pour les périphériques, ni aucune couche intermédiaire pour faciliter la programmation. Dans un sens c’est très pédagogique dans l’apprentissage des architectures des ordinateurs.

Machines programmables sur 8bitworkshop.com

Le site web 8 bit workshop est un site qui offre plusieurs machines rétro à programmer, dont les consoles Nintendo NES, l’Atari 2600, le PC Apple II+, des machines de jeux arcades…etc, comme c’est présenté sur l’image en haut. L’interface du site web est représentée sur l’image en bas. L’avantage d’utiliser la programmation online est d’éviter de faire l’installation de tous les outils nécessaire pour faire ce type de programmation, comme un éditeur de texte, un assembleur/compilateur, un émulateur, un éditeur de graphique, un débogueur…etc, ça permet aussi de faire la sauvegarde online, et de profiter directement de plusieurs exemples à tester sur le site. Si vous envisagez autrement de faire la même chose sur PC, pour programmer la NES par exemple vous aurez besoin d’installer Notepad++ (ou autres) comme éditeur de texte pour écrire le code source, de cc65 pour compiler/assembler le code, c’est une chaîne à outils pour le processeur 6502 (le processeur de la NES) qui contient entre autres un assembleur, un compilateur C, un éditeur de liens, un débogueur…etc. Mesen un émulateur pour faire tourner votre jeu sur PC comme s’il était sur une machine NES réel, il fait aussi office d’un excellent débogueur. De Asprite et Tiled pour réaliser des graphismes compatibles avec la NES…etc.

Interface de l’IDE NES du site web 8 bit workshop

,Dans tous les cas, la programmation sur les machines rétro donne au programmeur un contrôle total de la machine et ainsi une compréhension accrue du hardware, avec en plus un degré plus élevé de complexité. Tandis que les machines modernes sont plus faciles à programmer mais le prix de cette facilité c’est au détriment de plusieurs couches logicielles, comme les pilotes, les API, le système d’exploitation, qui masquent au programmeur le fonctionnement réel de la couche matériel.

Collection de ressources pédagogiques en informatique

J’ai eu location dernièrement en parcourant le net de tomber sur une collection énorme de ressources éducatives en informatique, la collection est énorme et contient de la documentation et des supports pédagogiques de différents domaines en informatique, voici son lien sur github et la liste des différents sous domaines qu’elle contient est présentée en bas. C’est littéralement un trésor pour l’étudiant, que je lui conseille d’en profiter au maximum. Il y a de la documentation dans l’algorithmique, la conception hardware, l’architecture des ordinateurs, l’assembleur, plusieurs langages de programmation, les bases de données, la sécurité informatique, la théorie de l’information, l’infographie, les réseaux informatiques, les systèmes d’exploitation, la cryptographie, le cloud computing, le data mining, l’intelligence artificielle, le machine learning, la robotique, le hacking, le traitement de signal, et même en mathématique et physique…etc. Les supports sont de différents types, il y a des cours en format textuel sur site web ou téléchargeable, il y a des vidéos enregistrées de cours, des vidéos de streaming, des tutoriaux, des livres, des livres online, des projets pas à pas, des documents techniques, des slides Powerpoint de cours magistraux…etc.

Le meilleur livre pratique de Machine Learning

Le Machine Learning (ou ML) est une branche importante de l’Intelligence Artificielle, la majorité des technologies actuelles d’IA utilisent des techniques de cette branche, comme par exemple les innovations DeepMind de Google ou les Enceintes Connectées, comme Google Home, Amazon Echo ou Apple HomePod, représentées sur la photo en bas. Je ne suis pas un spécialiste du domaine pour conseiller le meilleur livre pour apprendre cette discipline mais sur internet on arrive trouver des spécialistes qui peuvent nous orienter dans le choix d’un bon livre pour un bon investissement d’apprentissage dans le domaine. Le gars sur la vidéo en bas fait des vidéos de tutoriaux sur l’utilisation du langage Python dans le domaine du Data Science et Machine Learning, d’ailleurs le Python est très prisé pour ces deux disciplines. D’après l’auteur de la vidéo le livre Hands On Machine Learning with Scikit Learn and Tensorflow est le meilleur livre actuel sur le Machine Learning concernant l’aspect pratique du domaine (et non théorique), il explique dans la vidéo pourquoi d’après lui c’est le meilleur livre qui existe.

3 assistants vocaux (de gauche à droite) : Apple Homepod, Amazon Echo, Google Home

D’après ma modeste expérience dans l’éducation, le meilleur moyen d’apprendre pour un étudiant est un  »bon » livre, j’ai toujours répété à mes étudiants qu’un bon livre vous fera apprendre dix fois plus ce que vous apprendrez en suivant le cursus normal pour module donné, et c’est tout à fait logique, les bons livres sont généralement écrits par des spécialistes avec des années d’expérience, peut être les meilleurs dans le domaine, par exemple pour le module des architecture des ordinateur le livre Computer Organization and Design écrit par David A. Patterson et John L. Hennessy, les deux auteurs sont des experts reconnus mondialement, c’étaient les deux initiateurs de la conception des processeurs RISC, de facto de 99% des processeurs actuels. Les deux auteurs ont obtenu le prix Turing, l’équivalent du prix Nobel en informatique. John L. Hennessy est l’un des fondateurs du processeur MIPS étudié dans le module, il a été le tuteur des deux étudiants Larry Page et Sergey Brin lors de leur projet de fin d’étude pour la création du moteur de recherche Google. David A. Patterson est actuellement l’un des leaders de la fondation RISC-V, le processeur dit du future. Le livre contrairement au cours permet de prendre le temps et petit à petit d’approfondir et détailler minutieusement les différents aspects du domaine.

is this the best book on Machine Learning ?

Il faut savoir que l’Intelligence Artificielle est une discipline qui monte de jour en jour en puissance, ça serait probablement l’une des technologies prédominante dans les décennies à venir, investir dès les premières années dans cette technologie serait inch-allah bénéfique à long terme. Il faut juste savoir que ce domaine est réputé d’avoir une appréciation théorique lourde, et un background mathématique et statistique poussée. J’ai eu l’opportunité dans mon ingéniorat de travailler sur les Réseaux de neurones, l’une des techniques les plus répondues dans le ML, j’ai aussi travaillé sur les Support Vector Machine et je me rappelle qu’il me fallait étudier en plus des notions en mathématique non étudiés dans le cursus normal d’informaticien, comme certaines notions d’optimisations et d’analyses mathématiques, des concepts et théories en statistique…etc. Quoique le livre présenté en haut se concentre sur l’aspect pratique du domaine, l’aspect théorique reste pas moins important et non négligeable que l’aspect pratique.

Effets d’illusion générés mathématiquement

Comment générer mathématiquement ou géométriquement et facilement des effets d’illusion très impressionnants, la vidéo qui suit est produite par une chaîne Youtube de mathématique très célèbre, c’est la chaîne Numberphile que je vous la conseille énormément, c’est pratiquement actuellement la chaîne mathématique qu’a le plus grand nombre d’abonnés sur Youtube. Sur la vidéo le mathématicien Japonais Tadashi Tokieda démontre avec des dessins simples à base de petits points et quelques transformations géométriques la réalisation de superbes effets d’illusion. Dans la pratique, les mêmes effets peuvent être reproduits par des logiciels de retouche et de synthèse d’image, comme Photoshop, Gimp ou Inkscape, ou reproduits en temps réel sur des moteur de jeux vidéo pour des les effets graphique du jeu.

Effets visuels en mathématique

Analyse des circuits électroniques analogiques à courant continu

La distribution et l’irrigation du courant électrique à travers un circuit électronique et la perte du voltage en traversant les composants du circuit sont parmi les plus importants aspects et pratiquement les premiers pas de la compréhension et l’étude d’un circuit analogique à courant continu. Néanmoins ce processus d’analyse d’un circuit n’est pas si trivial et facile à maîtriser mais plutôt un processus assez complexe et intimidant. La vidéo en bas fait une démonstration pas à pas et bien détaillée de la méthode qui permet d’analyser un circuit avec plusieurs résistances en série et en parallèle. La démonstration se fait expliquer sur un exemple concret, sur lequel le courant passant par chaque fil, le voltage appliqué pour chaque composant et la puissance consommé pour chaque résistance sont calculés. Bien sur après avoir maîtrisé la théorie il est plus pratique et plus simple d’utiliser des simulateurs (comme celui-ci) pour les circuits complexes et éviter tous ces étapes longues et fastidieuses qui ne sont pas exemptes des erreurs humaines.

Analyse de circuits électroniques