- Foi criada uma interface USB baseada em Teensy 3.6 para usar, em computadores modernos, o keyset de cinco dedos que apareceu na demonstração do NLS de Douglas Engelbart em 1968
- O keyset é um dispositivo de entrada por acordes (chord), em que várias teclas de dedo são pressionadas ao mesmo tempo; por isso, é preciso usar até combinações dos botões do mouse para inserir maiúsculas, números, caracteres especiais e caracteres de controle
- A interface faz o Teensy operar como dispositivo de teclado USB e também como host USB para mouse, enviando entradas de tecla apenas quando o sinal permanece estável por 100 ms
- A demonstração de Engelbart antecipou mouse, hipertexto, documentos compartilhados, janelas e GUI, mas o keyset acabou sendo usado mais como tecla de função até no Xerox Alto e não se popularizou
- O nome "The Mother of All Demos" não era o usado em 1968; ele se consolidou nos anos 1990, com a moda do "mother of all..." e o livro de Steven Levy de 1994
O NLS de Engelbart e a demonstração de 1968
- Douglas Engelbart pesquisava, desde o início dos anos 1960, formas de os computadores ampliarem a inteligência humana
- Seu trabalho foi fortemente influenciado pelo ensaio de 1945 de Vannevar Bush, As We May Think
- Bush idealizou o memex, com uma biblioteca de conhecimento e conexões no estilo de hipertexto
- Engelbart criou o Augmentation Research Center no Stanford Research Institute, hoje SRI, e desenvolveu o NLS (oN-Line System)
- Em 1968, na Fall Joint Computer Conference, ele demonstrou o NLS diante de cerca de 2.000 pessoas
- Criou documentos hierárquicos e listas de compras, navegando por hiperlinks
- Produziu, moveu e editou texto com o keyset e o mouse
- Os documentos também incluíam gráficos avançados para a época e desenho de linhas
- O computador SDS 940 que rodava a demonstração não estava no palco em San Francisco, mas em Menlo Park, 30 milhas ao sul
- A apresentação também mostrou colaboração remota
- Jeff Rulifson explorou o código do NLS e navegou entre arquivos por hiperlinks
- Bill Paxton mostrou um uso em estilo banco de dados, desenhando diagramas e consultando informações por busca de palavras-chave
O hardware e a rede que tornaram a demonstração possível
- Bill English construiu o primeiro mouse para Engelbart e também foi o responsável geral pelo hardware da demonstração de 1968
- A imagem em San Francisco era projetada em uma tela de 20 pés por um projetor Eidophor do tamanho de um Volkswagen
- Várias câmeras, comutadores de vídeo e mixers compunham a imagem, e o SRI Menlo Park e o local do evento eram ligados por dois enlaces de micro-ondas alugados e várias antenas
- Os sinais do mouse, keyset e teclado eram enviados do local da apresentação ao SRI por meio de um modem de alta velocidade
- Bill English passou meses montando o hardware e a rede, e operou a apresentação nos bastidores com ajuda de uma equipe de cerca de 17 pessoas
- Stewart Brand também participou com conselhos de apresentação e operação de câmera
- Às vezes ele apontava a câmera para o monitor para criar padrões de feedback em espiral
O caminho seguido pelo keyset e por que ele desapareceu
- A demonstração de Engelbart incluía mouse, hipertexto, documentos compartilhados, janelas e GUI, hoje familiares na computação moderna, mas o keyset não conseguiu ampla adoção
- O keyset é um dispositivo em que se digitam caracteres pressionando simultaneamente cinco teclas de dedo, sem tirar a mão do lugar
- O Augmentation Research Center do SRI foi vendido para a Tymshare em 1977
- No Tymshare, o NLS foi renomeado para AUGMENT e vendido como serviço de automação de escritório
- Engelbart relembrou que acabou afastado do desenvolvimento e ficou invisível, sentado em um canto
- Bill English e alguns pesquisadores do SRI foram para o Xerox PARC e participaram do trabalho no Xerox Alto
- O Alto incorporou várias ideias do Augmentation Research Center, como GUI, mouse e keyset
- O keyset do Alto era quase idêntico ao keyset de Engelbart e foi usado especialmente no jogo de tiro 3D em rede Maze War
- Steve Jobs percebeu a importância da interação, da GUI e do mouse em sua visita ao Xerox PARC em 1979
- Apple Lisa e Macintosh adotaram GUI e mouse, mas deixaram o keyset de fora
- Depois que a McDonnell Douglas adquiriu a Tymshare em 1984, o Augment ganhou uma nova casa
- Em 1987, foi lançado o MiniBASE, um editor de texto e processador de outlines para IBM PC
- O MiniBASE foi um dos poucos aplicativos para PC com suporte ao keyset, mas não teve grande impacto ao competir com processadores de texto baseados em GUI como MacWrite e Microsoft Word
O percurso do nome "The Mother of All Demos"
- "The Mother of All Demos" não foi o nome dado à demonstração de Engelbart em 1968
- A raiz da expressão está em "the mother of all battles", da época da Guerra do Golfo
- Após a invasão do Kuwait pelo Iraque em 1990, Saddam Hussein usou a expressão, que chamou atenção da imprensa
- Depois disso, "mother of all ..." passou a ser usado nos anos 1990 para vários assuntos como uma forma levemente irônica de superlativo
- Em 1991, a expressão foi aplicada primeiro não a Engelbart, mas a uma demo da palestra principal da Intel na Comdex 1991
- Foi uma demonstração ao vivo de uma hora em que Andy Grove mostrou uma visão de videoconferência baseada em PC e comunicação sem fio
- A preparação levou quase seis meses e envolveu 15 empresas
- A Intel chamou essa demo de "The Mother of All Demos", e o nome foi repetido no New York Times, San Francisco Chronicle, Fortune e PC Week
- O principal caminho pelo qual essa expressão passou a designar a demonstração de Engelbart em 1968 foi o livro de 1994 de Steven Levy, Insanely Great
- Ao tratar da demonstração de Engelbart, Levy incluiu a frase: "It was the mother of all demos."
- Pelo que foi confirmado, a origem desse nome para a demonstração de Engelbart parece ser o livro de Levy
- Por volta de 1999, vários veículos passaram a repetir a expressão, associando-a à fama de Engelbart
- O San Jose Mercury News escreveu que a demonstração "still called 'the mother of all demos'"
- Computerworld e Nerds: A Brief History of the Internet trataram o caso de forma semelhante
- A edição de 1984 de Fire in the Valley não mencionava Engelbart, mas a segunda edição, de 2000, passou a ter um capítulo chamado "The Mother of All Demos"
Montagem da interface USB
- O keyset real tem uma estrutura em que cinco alavancas pressionam cinco microswitches, e os switches são ligados a um conector DB-25 padrão
- Foi usada uma Teensy 3.6 como placa de interface
- Quando opera como dispositivo USB, ela emula um teclado USB padrão
- Quando opera como host USB, pode receber entrada de um mouse USB padrão
- A ligação em si é relativamente simples
- Os cinco switches são conectados a cinco entradas de dados da Teensy
- O fio comum é ligado ao terra
- As entradas da Teensy podem usar resistores de pull-up internos, então o valor padrão é
1, e quando a tecla é pressionada passa a0
- A exceção parece ser um resistor de 1,5 kΩ entre o botão da extremidade esquerda e o terra
- Por causa desse resistor, essa linha sempre aparece com valor baixo na Teensy
- Para corrigir isso, foi ligado um resistor de pull-up de 1 kΩ nessa linha
Código de processamento de entrada e bibliotecas
- Ler o keyset e enviar caracteres por USB parece simples, mas é preciso lidar com entradas simultâneas e bounce de contato
- É difícil para o usuário pressionar várias teclas exatamente no mesmo instante, e os contatos dos switches também podem oscilar
- O código espera até que os valores dos botões permaneçam estáveis por 100 ms antes de enviar a entrada de teclado por USB
- Os 100 ms são um atraso definido de forma meio arbitrária
- Como cinco teclas suportam apenas 32 caracteres, maiúsculas, números, caracteres especiais e caracteres de controle precisam ser inseridos junto com os botões do mouse
- A interface também opera como host USB para conectar um mouse USB
- Para usar o mouse também como mouse normal, os eventos dele precisam ser encaminhados ao computador de destino
- Porém, os cliques do mouse usados junto com o keyset não devem ser encaminhados, para evitar cliques indesejados
- Para a emulação de teclado, é usada a biblioteca Keyboard do Arduino
print()suporta apenas caracteres comuns e não oferece suporte a teclas especiais comoENTEReBACKSPACE- Para teclas especiais, é preciso usar
press()erelease()
- Para ler os botões do mouse, é usada a biblioteca USBHost_t36
- Para encaminhar o movimento do mouse ao computador de destino, é usada a biblioteca Mouse
- Se quiser construir seu próprio keyset, é possível usar como referência o modelo engelbart-keyset de Eric Schlaepfer
Impressões de uso e código publicado
- Engelbart acreditava que aprender o keyset não era difícil e que até uma criança de 6 anos poderia aprendê-lo em uma semana, mas, no uso real e breve, ele pareceu fisicamente muito difícil
- Pressionar quatro dedos ao mesmo tempo é difícil, e a combinação mais complicada foi especialmente a que exige pressionar todos os dedos exceto o anelar
- Quando ainda se combinava um ou dois botões do mouse ao mesmo tempo, a sensação ficava próxima à de ler à primeira vista uma partitura de piano difícil
- David Liddle, do Xerox PARC, disse que o keyset tendia a deixar as pessoas mais lentas fora de um grupo muito experiente de programadores de sistemas
- Os programas do Alto também tendiam a tratar o keyset mais como teclas de função do que como um dispositivo de digitação por acordes
- O código da interface USB está publicado em keyset-to-usb-interface
1 comentários
Opiniões no Hacker News
Os textos do Ken são interessantes, como sempre. O conceito de teclado cordado (chorded keyboard) do Douglas parece ter gerado produtos sucessores bastante bem-sucedidos depois: https://en.wikipedia.org/wiki/Chorded_keyboard
Se você cresceu na Holanda nos anos 80, era impossível não conhecer o Velotype, que tinha mais teclas e era considerado mais fácil de aprender em termos de “acordes”. Também foi boa a menção ao livro Nerds 2.0.1, que é o livro complementar da série em três partes da PBS de 1998: https://archive.org/details/movies?tab=collection&query=Nerd...
Dez anos depois, quando os smartphones surgiram, isso parecia bem ridículo, mas na época havia gente que realmente acreditava que aquele era o futuro: https://en.wikipedia.org/wiki/Steve_Mann_(inventor)
Também dá para ver que, assim como no Morse, o código de caracteres foi projetado para facilitar o envio das letras mais comuns: [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)
Eu tinha 12 anos, mas já digitava sem olhar razoavelmente bem, então o Microwriter me pareceu muito desajeitado e pouco intuitivo. Não sei qual é a lição, mas uma ideia que parece boa pode não ser boa na prática, e talvez haja um motivo para o teclado no estilo máquina de escrever ter sobrevivido por mais de 150 anos
O teclado cordado original foi criado por Baudot por volta de 1897. O plano original era que o transmissor enviasse caracteres telegráficos de 5 bits (teletype) usando um teclado de 5 bits, e não era um simples protótipo, mas um sistema de fato implantado
https://collection.sciencemuseumgroup.org.uk/objects/co33197...
Nas versões iniciais, os lados transmissor e receptor precisavam estar mecanicamente sincronizados, e o datilógrafo tinha de seguir um timing rigoroso para que o outro lado conseguisse receber. Por isso surgiu uma versão com cartões perfurados, em que se digitava antes e o sistema alimentava automaticamente, reduzindo a habilidade necessária do operador. É um ótimo texto em que a linhagem até o teletipo fica praticamente evidente
Sou o autor. Se tiverem perguntas, mandem
A primeira etapa é desmontar, medir, pesar, escanear em 3D e produzir um modelo simples, tipo brinquedo, todo de plástico e fácil de imprimir; depois, quero refiná-lo em uma versão híbrida de alta qualidade, com impressão em resina e hardware pronto, como rodas, para ter o mesmo peso, sensação ao toque, materiais e componentes eletrônicos do original. Acho importante reproduzir o peso e a sensação do original, a rusticidade das rodas presas aos potenciômetros batendo nos limites de rotação e até a sensação de raspar sobre a mesa. Quando você o segura na mão, é realmente impressionante, mas se fosse colocado em um museu interativo quebraria rapidamente; então seria ótimo se qualquer pessoa pudesse imprimir em 3D uma réplica simples de plástico ou montar uma réplica funcional de alta qualidade
Quero disponibilizar gratuitamente o modelo simples e os planos detalhados de fabricação, e acho que também seria legal vendê-lo como kit ou produto acabado na loja de souvenirs do Computer History Museum. Se também incluirmos acelerômetro e giroscópio, ele poderia ser usado como controle de jogos por gestos; então, se for barato e fácil de adicionar, não há motivo para não incluir
Os componentes que estou considerando são um módulo ESP32-S3, um acelerômetro/giroscópio de 6 eixos MPU6050, dois potenciômetros de 10 KΩ para as rodas de rastreamento X/Y, três botões táteis com resistores de pull-up, uma bateria LiPo de 3,7 V, um módulo de carregamento TP4056 e um conector USB-C para carregamento e modo com fio. Gostaria de ouvir conselhos de pessoas experientes e também gostaria de colaborar com Ken como um projeto de paixão gratuito, aberto e sem fins lucrativos. Comprei uma impressora 3D Bambu e um scanner 3D Raptor só para este projeto, então estou pronto para começar: don@donhopkins.com
Sempre me perguntei o que aconteceu com esse hardware. Embora os métodos de entrada atuais sejam impressionantes, ainda acredito fortemente que eles têm falhas fundamentais e que precisamos de mais um salto
Firmwares personalizados para teclados mecânicos, como QMK [1] e ZMK [2], oferecem suporte a entradas de código personalizadas chamadas “combos”. Basicamente, quando um conjunto predefinido de teclas é pressionado dentro de um certo intervalo de tempo, ele envia um keycode específico; o limite de tempo padrão é 50 ms
A partir daí começa um jogo interessante de encontrar combinações com baixa probabilidade de ocorrência e mapeá-las para keycodes úteis. Também começam a aparecer regiões centrais boas para usar. Combos de duas teclas exigem alguma reflexão, porque bigramas são surpreendentemente comuns, mas combos de três teclas são quase um espaço aberto
Ao migrar do ZSA Voyager para o Chocofi, um teclado de 36 teclas, passei a depender bastante de combos. Não gosto do método de colocar várias funções em uma tecla distinguindo toque e segurar, porque simplesmente é difícil demais acertar o timing. Por exemplo, no meu layout atual (Colemak mod DK), pressionar simultaneamente, com a mão esquerda, indicador, médio e anelar na home row sobre R, S e T vira Escape. São três dedos, mas quase sem esforço adicional. Consegui eliminar a camada de símbolos e estou bastante satisfeito com o resultado
[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...
Ao contrário de outras inovações de Engelbart, o keyset não se popularizou, mas os teclados chorded foram populares entre pesquisadores de computação vestível, e essa linha acabou levando a trabalhos como o Google Glass. Um exemplo é o Twiddler.
A vantagem é poder operá-lo com uma mão, e alguns projetos podem ser segurados e operados simultaneamente com a mesma mão, sem uma superfície estável.
Eles são usados desde as Braillers mecânicas dos anos 1950 até displays braille eletrônicos modernos e anotadores, e métodos de entrada que adaptam esse conceito a telas sensíveis ao toque estão integrados ao iOS e ao 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/
Discurso de Ted Nelson em homenagem a Douglas Engelbart: https://www.youtube.com/watch?v=yMjPqr1s-cg
Homenagem a Douglas Engelbart e crítica à realidade da tecnologia: https://archive.nytimes.com/bits.blogs.nytimes.com/2013/12/1...
Vídeo de Doug e Karen Engelbart celebrando o casamento de Marlene e Ted: https://www.youtube.com/watch?v=TsKFbwLeS1k
O texto de Brett Victor também acerta em cheio: https://worrydream.com/Engelbart/
Textos sobre tecnologia tendem a perder o ponto central ao interpretar Engelbart apenas como um problema técnico. Engelbart passou a vida concentrado em problemas humanos, e a tecnologia veio como parte da solução. Lembrá-lo apenas como “o inventor do mouse de computador” é parecido com chamar o inventor da escrita de inventor do lápis.
Tenho lido muitos livros sobre computação dos anos 50, 60 e 70, especialmente relacionados a São Francisco, então nas últimas semanas tenho assistido à demonstração de Engelbart aos poucos. Mesmo que hoje eu só consiga interagir com aquele período via USB, é realmente incrível sentir que estou “perto” dessa história.
Uma correção bem pequena de nota de rodapé: além da mesa e do escritório, a cadeira em que Engelbart aparece sentado durante a demonstração também foi projetada especialmente pela Herman Miller.
Uso regularmente o Twiddler em um celular Android. Ele me permite controlar por completo os aplicativos que uso no desktop, inclusive o Emacs: https://www.mytwiddler.com/
Em vez de colocar um atraso de 100 ms para debounce da entrada dos switches, eu recomendaria fortemente usar um circuito RC e um inversor hex. Depois de desperdiçar tempo suficiente com isso, descobri que o melhor debounce em software eram alguns resistores e alguns capacitores.
https://mayaposch.wordpress.com/wp-content/uploads/2018/06/d...
Dito isso, o atraso de 100 ms mencionado por Ken provavelmente tinha outro objetivo: esperar até que todas as entradas dos dedos que compõem uma letra fossem detectadas. Acho que uma abordagem melhor seria esperar até que uma das teclas fosse solta antes de registrar a letra. Não era assim que Engelbart fazia? O motivo de Ken ter achado difícil de usar pode ter sido essa abordagem baseada em temporização.
Pelo que entendo, o teclado chorded original de Baudot travava mecanicamente as teclas até que a letra fosse transmitida pela linha telegráfica. O telegrafista tinha tempo para digitar o próximo caractere enquanto seus caracteres e os dos colegas eram transmitidos intercalados em uma taxa fixa de baud.
Às vezes me pergunto se um teclado de acordes seria melhor para controlar o computador, reduzindo problemas de RSI e ajudando a manter uma postura melhor. Também ocupa muito menos espaço que um teclado completo.
Pela gravação da demo e pelos textos relacionados, parece que o keyset e o mouse tinham um efeito mais poderoso quando usados juntos do que separadamente. Só não sei o quão bem autores multilíngues conseguiriam usá-lo. Fico curioso se os acordes dependem de características de uma língua específica, como o inglês; por exemplo, se a ordem dos acordes é definida conforme a frequência em que se usa mais “a” do que “x”. Também fica a dúvida se outros idiomas poderiam usar os mesmos acordes sem alterações ou se precisariam de versões otimizadas.
O teclado de acordes no estilo de Engelbart quase não saiu do mundo anglófono. Mas uma invenção relacionada, o teclado estenográfico, se disseminou, sendo usado em transcrições judiciais e legendagem ao vivo. Esses dispositivos têm uma estratégia de entrada de texto completamente diferente. O operador insere foneticamente uma sílaba inteira de cada vez, e a máquina interpreta a pronúncia com base em um dicionário. Por isso, em inglês, erros com homófonos são os mais comuns e podem ser corrigidos depois pelo contexto. Para se tornar proficiente, é preciso muito treinamento e prática, e a dependência do idioma é muito forte.
Vídeo em que Douglas Engelbart explica à coinventora Valerie Landau e a um blogueiro como usar números binários para entrada de texto: https://www.youtube.com/watch?v=DB_dLeEasL8
A explicação é que, atribuindo valores como 1, 2, 4 e 16 a cada dedo, é possível formar combinações até 63 e, assim, inserir de A a Z: https://news.ycombinator.com/item?id=43454343
O dispositivo comercial de entrada TapXR também funciona como mouse e dispositivo de apontamento por gestos. É uma luva vestível de toques que funciona tanto como teclado Bluetooth quanto como mouse; ainda não experimentei, mas parece bem interessante: https://www.tapwithus.com/ / https://www.youtube.com/watch?v=sdm8FcsKeoM
O TapXR se apresenta como uma forma integrada de interagir com PC, smartphone, tablet, SmartTV, projetor, VR, AR e XR, e destaca mais de 80 palavras por minuto com uma mão, até 10 caracteres por segundo, mais de 150 comandos personalizados, mais de 2500 layouts Tap e bateria de 8 horas.
Também há um texto sobre uma versão inicial de cerca de 7 anos atrás: https://news.ycombinator.com/item?id=17122717
Na época, eu tinha descoberto um novo dispositivo chamado Tap; por ser uma luva vestível de toques que funcionava como teclado e mouse Bluetooth, parecia uma versão moderna da luva HandWriter de Engelbart e Valerie Landau. Os SDKs para iOS, Android e Unity3D estavam no GitHub: https://github.com/TapWithUs
Se funcionasse bem, eu queria criar TapPieMenus que pudessem ser usados em qualquer lugar — VR, mobile, desktop etc. Também parecia possível adicionar feedback tátil para vibrar os dedos com algo como um buzzer piezoelétrico e treinar a digitação de letras, ou transmitir mensagens silenciosas e invisíveis enquanto a pessoa estivesse usando, como se fossem soletradas em segredo. Também houve uma análise do LinusTechTips: https://youtu.be/8za_4g5zCOM
Teclados de acordes sempre me pareceram um pesadelo ergonômico. Como é preciso mover vários dedos para cada tecla digitada, é como multiplicar os movimentos repetitivos.