- Création d’une interface USB basée sur un Teensy 3.6 pour utiliser sur des ordinateurs modernes le keyset à cinq doigts apparu dans la démonstration NLS de Douglas Engelbart en 1968
- Le keyset est un dispositif de saisie par accords (chording) où plusieurs touches de doigt sont pressées simultanément ; pour entrer des majuscules, chiffres, caractères spéciaux et caractères de contrôle, il faut aussi utiliser des combinaisons de boutons de souris
- L’interface fait fonctionner le Teensy à la fois comme périphérique clavier USB et comme hôte USB pour une souris, et n’envoie une frappe que lorsque l’entrée reste stable pendant 100 ms
- La démonstration d’Engelbart montrait en avance sur son temps la souris, l’hypertexte, les documents partagés, les fenêtres et l’interface graphique, mais le keyset ne s’est pas généralisé et a surtout servi comme touche de fonction sur le Xerox Alto
- Le nom « The Mother of All Demos » ne date pas de 1968 ; il s’est imposé plus tard, dans le sillage de la mode des expressions en « mother of all... » dans les années 1990 et du livre de Steven Levy paru en 1994
Le NLS d’Engelbart et la démonstration de 1968
- Dès le début des années 1960, Douglas Engelbart étudie comment les ordinateurs pourraient augmenter l’intelligence humaine
- Son travail est fortement influencé par l’essai de 1945 de Vannevar Bush, As We May Think
- Bush y imagine le memex, doté d’une bibliothèque de connaissances et de liens de type hypertexte
- Engelbart fonde l’Augmentation Research Center au Stanford Research Institute, aujourd’hui SRI, et y développe le NLS (oN-Line System)
- En 1968, lors de la Fall Joint Computer Conference, il présente le NLS devant environ 2 000 personnes
- Il crée des documents hiérarchiques et une liste de courses, puis navigue via des hyperliens
- Il crée, déplace et édite du texte avec le keyset et la souris
- Les documents incluent aussi des graphismes avancés pour l’époque et du tracé de lignes
- L’ordinateur SDS 940 qui faisait tourner la démonstration ne se trouvait pas sur scène à San Francisco, mais à Menlo Park, à une trentaine de miles au sud
- Une démonstration de collaboration à distance est également montrée sur scène
- Jeff Rulifson parcourt le code du NLS et navigue entre des fichiers par hyperliens
- Bill Paxton dessine des diagrammes et montre un usage de type base de données avec recherche par mots-clés
Le matériel et le réseau qui ont rendu la démonstration possible
- Bill English a construit la première souris pour Engelbart et a aussi assuré la direction matérielle de la démonstration de 1968
- L’image à San Francisco est projetée sur un écran de 20 pieds à l’aide d’un projecteur Eidophor de la taille d’une Volkswagen
- Plusieurs caméras, mélangeurs vidéo et commutateurs composent l’affichage, et SRI Menlo Park est relié au site de l’événement par deux liaisons micro-ondes louées et plusieurs antennes
- Les signaux de la souris, du keyset et du clavier sont transmis du lieu de la démonstration vers SRI via un modem haut débit
- Bill English assemble le matériel et le réseau pendant plusieurs mois et, avec l’aide d’une équipe d’environ 17 personnes, pilote la démonstration depuis les coulisses
- Stewart Brand participe aussi aux conseils de présentation et à l’exploitation des caméras
- Il pointait parfois une caméra vers un moniteur pour créer des motifs de rétroaction tourbillonnants
Le parcours du keyset et les raisons de sa disparition
- La démonstration d’Engelbart comprenait des éléments devenus familiers dans l’informatique moderne — souris, hypertexte, documents partagés, fenêtres, interface graphique — mais le keyset n’a pas été largement adopté
- Le keyset est un dispositif permettant de saisir des caractères en pressant simultanément cinq touches de doigt, sans déplacer la main
- L’Augmentation Research Center de SRI est vendu à Tymshare en 1977
- Le NLS y est renommé AUGMENT et commercialisé comme service d’automatisation de bureau
- Engelbart se souvient avoir été écarté du développement et relégué dans un coin, devenu invisible
- Bill English et certains chercheurs du SRI rejoignent Xerox PARC et participent aux travaux sur le Xerox Alto
- L’Alto reprend plusieurs idées de l’Augmentation Research Center, dont l’interface graphique, la souris et le keyset
- Le keyset de l’Alto est presque identique à celui d’Engelbart et est particulièrement utilisé dans le jeu de tir 3D en réseau Maze War
- Lors de sa visite à Xerox PARC en 1979, Steve Jobs prend conscience de l’importance de l’interactivité, de l’interface graphique et de la souris
- L’Apple Lisa et le Macintosh adoptent l’interface graphique et la souris, mais pas le keyset
- Après l’acquisition de Tymshare par McDonnell Douglas en 1984, Augment trouve un nouveau cadre
- En 1987 sort MiniBASE, un éditeur de texte et outline processor pour IBM PC
- MiniBASE fait partie des rares applications PC à prendre en charge le keyset, mais son impact reste limité face à des traitements de texte à interface graphique comme MacWrite et Microsoft Word
Le parcours du nom « The Mother of All Demos »
- « The Mother of All Demos » n’est pas le nom donné à la démonstration d’Engelbart en 1968
- L’expression trouve sa racine dans « the mother of all battles » pendant la guerre du Golfe
- Après l’invasion du Koweït par l’Irak en 1990, Saddam Hussein emploie cette formule, qui attire l’attention des médias
- Ensuite, « mother of all ... » est utilisé dans les années 1990 pour divers sujets comme une forme de superlatif légèrement ironique
- En 1991, l’expression s’applique d’abord non pas à Engelbart, mais à la keynote de démonstration d’Intel au Comdex 1991
- Andy Grove y présente une démonstration en direct d’une heure montrant une vision de la visioconférence sur PC et des communications sans fil
- La préparation a pris près de six mois et 15 entreprises ont coopéré
- Intel appelle cette démonstration « The Mother of All Demos », et ce nom est repris dans le New York Times, le San Francisco Chronicle, Fortune et PC Week
- Le principal vecteur ayant attaché cette expression à la démonstration d’Engelbart en 1968 est le livre Insanely Great de Steven Levy, paru en 1994
- Levy y traite de la démonstration d’Engelbart et écrit : « It was the mother of all demos. »
- D’après les sources confirmées, le livre de Levy semble être l’origine de cette appellation pour la démonstration d’Engelbart
- Vers 1999, plusieurs médias répètent l’expression, qui se fixe alors avec la renommée d’Engelbart
- Le San Jose Mercury News écrit que la démonstration est « still called 'the mother of all demos' »
- Computerworld et Nerds: A Brief History of the Internet la présentent de manière similaire
- L’édition de 1984 de Fire in the Valley ne mentionnait pas Engelbart, mais la 2e édition de 2000 ajoute un chapitre intitulé « The Mother of All Demos »
Composition de l’interface USB
- Le keyset réel est constitué de 5 leviers qui actionnent 5 microswitches, reliés à un connecteur DB-25 standard
- La carte d’interface utilisée est un Teensy 3.6
- En mode périphérique USB, il émule un clavier USB standard
- En mode hôte USB, il peut recevoir les entrées d’une souris USB standard
- Le câblage lui-même est assez simple
- Les 5 interrupteurs sont reliés à 5 entrées de données du Teensy
- La ligne commune est reliée à la masse
- Les entrées du Teensy peuvent utiliser des résistances de pull-up internes ; la valeur par défaut est donc
1, et elle passe à0quand une touche est pressée
- L’exception semble être une résistance de 1,5 kΩ située entre le bouton le plus à gauche et la masse
- À cause de cette résistance, cette ligne apparaît toujours à l’état bas sur le Teensy
- Pour corriger cela, une résistance de pull-up de 1 kΩ est ajoutée sur cette ligne
Code de traitement des entrées et bibliothèques
- Lire le keyset et envoyer des caractères via USB paraît simple, mais il faut gérer les entrées simultanées et les rebonds de contact
- Il est difficile pour l’utilisateur d’appuyer sur plusieurs touches exactement au même instant, et les contacts des interrupteurs peuvent aussi rebondir
- Le code attend que les valeurs des boutons restent stables pendant 100 ms avant d’envoyer une frappe USB
- Les 100 ms sont une valeur de délai choisie de façon à moitié arbitraire
- Avec seulement 5 touches, on ne peut représenter que 32 caractères ; il faut donc combiner avec les boutons de la souris pour les majuscules, chiffres, caractères spéciaux et caractères de contrôle
- L’interface fonctionne aussi comme hôte USB pour permettre de brancher une souris USB
- Pour continuer à utiliser la souris comme une souris normale, les événements de la souris doivent être relayés vers l’ordinateur cible
- En revanche, les clics de souris utilisés avec le keyset ne doivent pas être relayés afin d’éviter des clics indésirables
- Pour l’émulation clavier, le code utilise la bibliothèque Keyboard d’Arduino
print()ne gère que les caractères ordinaires et pas les touches spéciales commeENTERouBACKSPACE- Pour les touches spéciales, il faut utiliser
press()etrelease()
- La lecture des boutons de souris s’appuie sur la bibliothèque USBHost_t36
- La transmission des mouvements de la souris vers l’ordinateur cible utilise la bibliothèque Mouse
- Si vous voulez fabriquer votre propre keyset, vous pouvez vous référer au modèle engelbart-keyset d’Eric Schlaepfer
Sensations d’usage et code publié
- Engelbart estimait que l’apprentissage du keyset n’était pas difficile et qu’un enfant de 6 ans pouvait l’apprendre en une semaine, mais en pratique, sur une courte utilisation, l’appareil semble physiquement très difficile à maîtriser
- Le mouvement consistant à appuyer sur quatre doigts à la fois est difficile, et la combinaison la plus délicate est surtout celle où tous les doigts sauf l’annulaire sont pressés
- Lorsqu’on y ajoute un ou deux boutons de souris en même temps, la sensation se rapproche de la lecture à vue d’une partition de piano difficile
- David Liddle, de Xerox PARC, explique que le keyset avait tendance à ralentir les utilisateurs dès qu’ils n’étaient plus des programmeurs système très expérimentés
- Les logiciels de l’Alto tendaient eux aussi à traiter le keyset davantage comme une touche de fonction que comme un dispositif de frappe pour la saisie par accords
- Le code de l’interface USB est publié sur keyset-to-usb-interface
1 commentaires
Avis sur Hacker News
Les articles de Ken sont, comme toujours, passionnants. Le concept de clavier à accords (chorded keyboard) de Douglas semble avoir donné naissance par la suite à des produits dérivés assez réussis : https://en.wikipedia.org/wiki/Chorded_keyboard
Si vous avez grandi aux Pays-Bas dans les années 80, impossible de ne pas connaître le Velotype ; il avait davantage de touches, ce qui était réputé rendre l’apprentissage des « accords » plus facile. La mention du livre Nerds 2.0.1 était aussi bienvenue : il s’agit de l’ouvrage compagnon de la série PBS en trois épisodes de 1998 : https://archive.org/details/movies?tab=collection&query=Nerd...
Dix ans plus tard, après l’arrivée des smartphones, cela paraissait assez ridicule, mais à l’époque, certains croyaient vraiment que c’était l’avenir : https://en.wikipedia.org/wiki/Steve_Mann_(inventor)
On voit aussi qu’il avait conçu le code des caractères de façon à ce que les lettres les plus fréquentes soient plus faciles à envoyer, comme avec le morse : [https://en.wikipedia.org/wiki/Baudot_code#/media/File:Baudot...](https://en.wikipedia.org/wiki/Baudot_code#/media/File:Baudot_Code_-_from_1888_patent.png)
J’avais 12 ans, mais je savais déjà assez bien taper au clavier sans regarder, et le Microwriter m’a paru très maladroit et peu intuitif. Je ne sais pas quelle leçon en tirer, mais une idée qui semble bonne ne l’est pas forcément en pratique, et il y a peut-être une raison pour laquelle le clavier de type machine à écrire a survécu plus de 150 ans
À l’origine, le clavier à accords a été créé vers 1897 par Baudot. Le plan initial consistait à ce que l’émetteur envoie des caractères télégraphiques 5 bits (teletype) avec un clavier 5 bits ; ce n’était pas un simple prototype, mais un système réellement déployé
https://collection.sciencemuseumgroup.org.uk/objects/co33197...
Les premières versions nécessitaient que l’émetteur et le récepteur soient mécaniquement synchronisés, et la dactylo devait respecter un timing strict pour que l’autre côté puisse recevoir. Une version à cartes perforées a donc été introduite, permettant de saisir le texte à l’avance puis de l’alimenter automatiquement, ce qui réduisait le niveau de compétence requis de l’opérateur. C’est un bon article où l’on voit presque clairement la filiation qui mène jusqu’au téléscripteur
C’est l’auteur. Je réponds volontiers aux questions
La première étape consiste à le démonter, le mesurer, le peser, le scanner en 3D et fabriquer un modèle simple entièrement en plastique, façon jouet, facile à imprimer. Ensuite, j’aimerais l’affiner en une version hybride de haute qualité, avec impression résine et du matériel standard comme les roues, pour retrouver le poids, le toucher, les matériaux et l’électronique de l’original. Il me semble important de reproduire le poids et le ressenti de l’original, le côté rudimentaire des roues fixées aux potentiomètres qui viennent buter sur leurs limites de rotation, jusqu’à la sensation de raclement sur le bureau. L’avoir en main est vraiment étonnant, mais dans un musée interactif il serait vite endommagé ; ce serait donc bien que n’importe qui puisse imprimer en 3D une réplique simple en plastique, ou assembler une réplique fonctionnelle de haute qualité.
J’aimerais publier gratuitement le modèle simple et le plan de fabrication détaillé, et je pense que ce serait aussi une bonne idée que la boutique de souvenirs du Computer History Museum le vende en kit ou déjà assemblé. Avec un accéléromètre et un gyroscope, il pourrait aussi servir de manette de jeu à gestes ; si c’est peu coûteux et facile à ajouter, il n’y a pas de raison de s’en priver.
Les composants envisagés sont un module ESP32-S3, un accéléromètre/gyroscope 6 axes MPU6050, deux potentiomètres 10 KΩ pour les roues de suivi X/Y, trois boutons tactiles avec résistances de pull-up, une batterie LiPo 3,7 V, un module de charge TP4056 et un connecteur USB-C pour la charge et le mode filaire. J’aimerais recevoir les conseils de personnes expérimentées, et collaborer aussi avec Ken sur ce projet ouvert, gratuit, non lucratif et porté par la passion. J’ai acheté une imprimante 3D Bambu et un scanner 3D Raptor rien que pour ce projet, donc je suis prêt à démarrer tout de suite : don@donhopkins.com
Je me suis toujours demandé ce qu’était devenu ce matériel. Même si les modes de saisie actuels sont impressionnants, je reste convaincu qu’ils sont fondamentalement défectueux et qu’il nous faut encore un nouveau saut en avant.
Les firmwares de claviers mécaniques personnalisés comme QMK [1] et ZMK [2] prennent en charge une saisie de codes personnalisés appelée « combos ». En gros, lorsqu’un ensemble défini de touches est enfoncé dans un certain délai, un keycode précis est envoyé ; le délai par défaut est de 50 ms.
Cela lance alors un jeu intéressant : trouver des combinaisons à faible probabilité d’occurrence et les associer à des keycodes utiles. On commence aussi à voir apparaître des zones clés bien adaptées à cet usage. Les combos à deux touches demandent un peu de réflexion, car les bigrammes sont étonnamment fréquents, mais les combos à trois touches sont presque un terrain vierge.
En passant du ZSA Voyager à un clavier 36 touches Chocofi, je me suis beaucoup appuyé sur les combos. Je n’aime pas la méthode qui distingue tap et hold pour mettre plusieurs fonctions sur une même touche, car je n’arrive absolument pas à en caler le timing. Par exemple, dans ma disposition actuelle (Colemak mod DK), appuyer simultanément avec l’index, le majeur et l’annulaire de la main gauche sur R, S, T de la rangée de repos produit Escape. Cela fait trois doigts, mais presque aucun effort supplémentaire. J’ai pu supprimer la couche de symboles, et je suis plutôt satisfait du résultat.
[1] https://docs.qmk.fm/features/combo
[2] https://zmk.dev/docs/keymaps/combos
[3] https://configure.zsa.io/voyager/layouts/d7L0v/latest/0
[4] https://github.com/vietjtnguyen/zmk-chocofi/blob/main/config...
Contrairement à d’autres innovations d’Engelbart, le keyset ne s’est pas largement diffusé, mais les claviers à accords ont été populaires chez les chercheurs en informatique wearable, un courant qui a mené à des travaux comme Google Glass. Le Twiddler en est un exemple.
Leur avantage est de pouvoir être utilisés d’une seule main, et certaines conceptions peuvent être tenues et actionnées simultanément de la même main, sans surface stable.
Ils sont utilisés depuis les Brailler mécaniques des années 1950 jusqu’aux afficheurs braille électroniques et aux bloc-notes modernes, et des modes de saisie adaptant ce concept à l’écran tactile sont intégrés à iOS et Android.
[1] https://wecapable.com/perkins-brailler-braille-typing/
[2] https://support.apple.com/en-us/101637
[3] https://blog.google/products/android/braille-keyboard/
L’éloge funèbre de Douglas Engelbart par Ted Nelson : https://www.youtube.com/watch?v=yMjPqr1s-cg
Hommage à Douglas Engelbart et critique de l’état de la technologie : https://archive.nytimes.com/bits.blogs.nytimes.com/2013/12/1...
Vidéo de Doug et Karen Engelbart officiant au mariage de Marlene et Ted : https://www.youtube.com/watch?v=TsKFbwLeS1k
Le texte de Brett Victor va lui aussi droit au cœur du sujet : https://worrydream.com/Engelbart/
Les articles techniques ont tendance à passer à côté de l’essentiel en interprétant Engelbart uniquement comme un problème technique. Engelbart s’est concentré toute sa vie sur les problèmes humains, et la technologie est venue comme une partie de la solution. Le réduire à « l’inventeur de la souris d’ordinateur », c’est un peu comme appeler l’inventeur de l’écriture l’inventeur du crayon.
Ces derniers temps, je lis beaucoup de livres sur l’informatique des années 50, 60 et 70, en particulier en lien avec San Francisco, et je regardais donc par intermittence la démo d’Engelbart depuis quelques semaines. Même si l’on ne peut aujourd’hui interagir avec cette période qu’à travers l’USB, c’est vraiment étonnant d’avoir l’impression d’être « proche » de cette histoire.
Petite correction de note de bas de page, mais en plus du bureau et de l’espace de travail, la chaise sur laquelle Engelbart est assis pendant la démo a elle aussi été spécialement conçue par Herman Miller.
J’utilise régulièrement le Twiddler sur un téléphone Android. Il permet de contrôler entièrement les applications que j’utilise sur desktop, par exemple jusqu’à Emacs : https://www.mytwiddler.com/
Plutôt que d’ajouter un délai de 100 ms pour le debouncing des entrées de commutateur, je recommanderais vivement d’utiliser un circuit RC et un inverseur hexadécimal. Après avoir perdu suffisamment de temps là-dessus, j’ai conclu que le meilleur debounce logiciel, c’était quelques résistances et quelques condensateurs.
https://mayaposch.wordpress.com/wp-content/uploads/2018/06/d...
Cela dit, le délai de 100 ms mentionné par Ken avait sans doute un autre objectif : attendre que toutes les pressions de doigts composant un caractère soient détectées. Une meilleure approche me semble être d’attendre qu’une des touches soit relâchée avant d’enregistrer le caractère. Engelbart ne faisait-il pas ainsi ? La raison pour laquelle Ken a trouvé cela difficile à utiliser vient peut-être de cette approche basée sur le timing.
Si je comprends bien, le clavier à accords original de Baudot verrouillait mécaniquement les touches jusqu’à ce que le caractère soit envoyé sur la ligne télégraphique. L’opérateur avait alors le temps de saisir le caractère suivant pendant que son caractère et ceux de ses collègues étaient transmis en entrelacement à un débit en bauds fixe.
Je me demande parfois si un clavier à accords serait plus adapté pour contrôler un ordinateur tout en réduisant les problèmes de RSI et en conservant une meilleure posture. Il prend aussi beaucoup moins de place qu’un clavier complet.
À en juger par l’enregistrement de la démo et les articles associés, il semble que le keyset et la souris aient eu un effet plus puissant utilisés ensemble que séparément. En revanche, je ne sais pas dans quelle mesure un auteur multilingue pourrait bien s’en servir. Je me demande si les accords dépendent des caractéristiques d’une langue donnée, comme l’anglais ; par exemple, si l’ordre des accords est fixé en fonction de la fréquence d’usage, avec
aplus fréquent quex. Je me demande aussi si d’autres langues peuvent utiliser les mêmes accords tels quels, ou s’il faudrait des versions optimisées.Le clavier à accords à la Engelbart n’a pratiquement pas dépassé le monde anglophone. En revanche, une invention liée, le clavier de sténotypie, s’est diffusée dans les comptes rendus judiciaires et le sous-titrage en direct. Ces dispositifs reposent sur une stratégie de saisie de texte complètement différente. L’opérateur saisit phonétiquement une syllabe entière à la fois, et la machine interprète la prononciation à l’aide d’un dictionnaire. C’est pourquoi, en anglais, les erreurs d’homophones sont les plus courantes et peuvent être corrigées ensuite grâce au contexte. Devenir compétent exige beaucoup de formation et de pratique, et la dépendance à la langue est très forte.
Une vidéo où Douglas Engelbart explique à sa co-inventrice Valerie Landau et à un blogueur comment utiliser le binaire pour la saisie de texte : https://www.youtube.com/watch?v=DB_dLeEasL8
L’explication est qu’en attribuant à chaque doigt des valeurs comme 1, 2, 4 ou 16, on peut aller jusqu’à 63 par combinaison, et saisir ainsi de A à Z : https://news.ycombinator.com/item?id=43454343
Le dispositif de saisie commercial TapXR fonctionne aussi comme souris et comme dispositif de pointage par gestes. C’est un gant de tapotement portable qui fonctionne à la fois comme clavier et souris Bluetooth ; je ne l’ai pas encore essayé, mais il a l’air assez chouette : https://www.tapwithus.com/ / https://www.youtube.com/watch?v=sdm8FcsKeoM
TapXR se présente comme une manière unifiée d’interagir avec PC, smartphones, tablettes, SmartTV, projecteurs, VR, AR et XR, et met en avant plus de 80 mots par minute à une main, jusqu’à 10 caractères par seconde, plus de 150 commandes personnalisées, plus de 2 500 dispositions Tap et 8 heures d’autonomie.
Il existe aussi un article sur une première version d’il y a environ sept ans : https://news.ycombinator.com/item?id=17122717
À l’époque, j’avais découvert un nouvel appareil appelé Tap : comme c’était un gant de tapotement portable faisant office de clavier et de souris Bluetooth, il ressemblait à une version moderne du gant HandWriter d’Engelbart et Valerie Landau. Les SDK iOS, Android et Unity3D étaient disponibles sur GitHub : https://github.com/TapWithUs
Si cela fonctionnait bien, j’aurais voulu créer des TapPieMenus utilisables partout, en VR, sur mobile ou sur desktop. Avec du retour haptique, on pourrait faire vibrer les doigts avec quelque chose comme un buzzer piézoélectrique pour entraîner la saisie de lettres, ou même transmettre discrètement, pendant qu’on le porte, des messages silencieux et invisibles, comme en les épelant. Il y avait aussi une critique de LinusTechTips : https://youtu.be/8za_4g5zCOM
Les claviers à accords m’ont toujours paru être un cauchemar ergonomique. Comme il faut bouger plusieurs doigts à chaque frappe, cela revient à multiplier les gestes répétitifs.