40 anos de história da programação
(fabiensanglard.net)- Ao se aproximar dos 46 anos, com 40 anos de experiência programando, a combinação tradicional de teclado de 104 teclas, mouse plano e mesa para trabalhar sentado passou a ser reavaliada após dores nos antebraços e nos ombros
- O mouse melhorou com um modelo vertical como o Evoluent VerticalMouse 4; depois, a configuração migrou para um Apple Magic Trackpad no centro, alternando o uso entre a mão esquerda e a direita
- No teclado, depois de passar pelo KINESIS Freestyle2 e pelo Advantage2, a escolha final foi o Ergodox EZ; os recursos centrais são ajuste da distância entre as metades, firmware customizado, troca de camadas e alteração de ação ao manter teclas pressionadas
- O modo VIM se encaixa no objetivo de lidar com navegação de arquivos, ir para definição, voltar etc. sem mouse, reduzindo o movimento das mãos e a torção dos punhos
- Com uma mesa elétrica ajustável para trabalhar em pé, alongamentos periódicos Wall Angel e escalada após o expediente, foi montado um ambiente de gestão de dor, postura e estresse para programar por longos períodos
Dispositivos de entrada que mudaram depois da dor
- Programei por 40 anos, metade deles profissionalmente, e por muito tempo usei a configuração padrão de teclado de 104 teclas, mouse plano e mesa para trabalhar sentado
- Cerca de 10 anos atrás, comecei a sentir dor nos antebraços e nos ombros ao programar, e passei a mudar meu ambiente de trabalho
-
Mouse e trackpad
- O mouse vertical ajudou muito a aliviar a dor, e meu modelo preferido é o Evoluent VerticalMouse 4
- Depois, mudei para uma configuração com o Apple Magic Trackpad no centro, alternando o uso entre a mão esquerda e a direita
- É possível trocar de área de trabalho com três dedos, dar zoom etc.
- Antes era trabalhoso obter drivers para Linux/Windows, mas hoje isso já está resolvido
-
Processo de escolha do teclado
- Meu primeiro teclado ergonômico foi o KINESIS Freestyle2, que permitia separar os dois lados tanto quanto necessário, deixando os punhos retos na horizontal
- No entanto,
Control,ShifteAltainda exigiam movimento dos punhos, oEscusado no VIM também exigia torcer o punho esquerdo, e o ângulo de inclinação também era baixo - O KINESIS Advantage2 era bom por oferecer muitas opções acionáveis com os polegares, mas a largura fixa era um retrocesso em relação ao Freestyle2
- Por fim, o Ergodox EZ atendeu a todos os requisitos necessários
- A largura pode ser ajustada para ficar mais ampla ou mais estreita
- O firmware customizado é muito flexível
- Com uma única tecla, é possível alternar todas as teclas para outra camada
- É possível fazer com que a função mude ao manter uma tecla pressionada
- No layout pessoal, manter
DouKpressionado substituiShift, e símbolos como{,[e(ficam em outra camada acessada por uma única tecla mantida pressionada - Depois de usar o Ergodox EZ, meus punhos permanecem sempre em posição de descanso nos três eixos, e consigo programar o dia todo sem dor
- Também é possível fazer ajustes de hardware
- Keycaps DROP Carbon
- Cabos customizados da pexonpcs.co.uk
- long legs impressas em 3D
- Brown Gateron G Pro
- Como fã do teclado clicky IBM Model M, montei meu primeiro Ergo com Cherry MX Blue; em casa ele era aceitável, mas incomodava os colegas
- A opção mais silenciosa é Cherry MX Red, e a opção intermediária entre Blue e Red é Cherry MX Brown
Forma de trabalhar movendo menos as mãos e hábitos de vida
- O objetivo é mover as mãos o mínimo possível e torcer os punhos o mínimo possível
- A maioria das IDEs exige cliques de mouse, mas o modo VIM de muitos editores permite navegar por arquivos, ir para definições e voltar sem usar o mouse
-
Mesa e postura
- Ficar em pé melhora a postura porque evita sentar-se de forma curvada
- Montei uma mesa elétrica ajustável para trabalhar em pé com pernas Topsky e um tampo tipo butcher block da Home Depot
- Com memória para 3 posições, dá para alternar entre ficar em pé e sentado em poucos segundos, e tento alternar ao longo do dia
-
Alongamento e gestão do estresse
- Às vezes faço pausas e repito o Wall Angel várias vezes
- Depois do expediente, me desligo do trabalho para gerenciar o nível de estresse
- A escalada não permite pensar em outras coisas enquanto estou subindo, então combina bem com a necessidade de interromper ideias de otimização que continuam surgindo mesmo quando não é hora de trabalhar
1 comentários
Opiniões no Hacker News
Pode ser polêmico, mas o que me salvou foi abandonar um ambiente com uso intenso do teclado, como Emacs+linha de comando, e migrar para o Apple Xcode
Ainda faço muito build pela linha de comando, mas uso bastante o mouse para editar código e alternar janelas. O Xcode também pode ser usado simplesmente como editor de texto, se você quiser, e, quando dá, faço copiar/colar selecionando com o mouse
Uso um mouse gamer configurado com um botão do “Exposé” do macOS para encontrar janelas, e minha tela é apenas um iMac de 27″. Também uso o trackpad da Apple para dar descanso à mão, mas, se uso muito por um ou dois dias, meus dedos doem
Teclados mecânicos também machucam meus dedos, então estou procurando um teclado ou keycaps melhores. Desde os 19 anos, ao longo de 45 anos, usei cartões perfurados, editores em modo de linha, TECO, editores de tela cheia da família TECO, DEC EDT, Emacs etc., e também conheço vi, mas não acho que vi resolva lesão por esforço repetitivo (LER/RSI)
Sei editar de forma eficiente com atalhos de teclado, mas hoje acho que esse é o caminho errado. Na época em que eu usava Emacs e Happy Hacking Keyboard, a dor acabou ficando forte
Usar mouse não me deixa lento, e consigo produzir cerca de 2.000 linhas de bom código C++ por dia. Só não gosto de C++ do ponto de vista da digitação
Tenho 33 anos e ainda não tenho problemas como dor nas articulações; pessoas da minha idade, mais novas ou mais velhas, tentam reduzir dores com teclados ergonômicos, massagem, alongamento etc.
Uso mouse e teclado tradicionais desde uns 7 anos e fico bem mesmo passando o dia inteiro na frente do computador
Ultimamente penso se minha incapacidade de ficar parado não acabou me ajudando até agora. Afundo na cadeira, coloco as pernas para cima, mexo os pés, apoio-me na mesa em posições estranhas, torço o corpo e me alongo
Não é porque estou com dor; é mais porque meu corpo fica inquieto. Mas, quando entro em imersão profunda programando, me mexo menos, e aí meus braços ou dedos às vezes ficam rígidos. Meus olhos também doem, provavelmente porque passo a piscar menos
Vou à academia pelo menos 2 vezes por semana, e, durante o confinamento, quando reduzi tanto o exercício quanto o movimento, tive dor nas costas e outros problemas
Quando voltei para a academia, os problemas desapareceram, e nem levanto muito pesado. Em vez de fazer supino com 100 kg, normalmente paro nos 70 kg. O importante é se mexer, mais do que levantar pesado; se o objetivo é saúde, você não precisa necessariamente aumentar a carga só porque o pessoal da academia diz para aumentar
Uma mesa mais baixa que o normal e uma cadeira mais baixa são mais confortáveis para mim, e laptop cansa se não estiver sobre a mesa. Se uso o laptop no colo no sofá, fico com dor no pescoço
É melhor não inclinar o pescoço para olhar para o centro da tela, e usar o trackpad do MacBook por muito tempo deixa meu punho desconfortável. Se não uso mouse, fico desconfortável e acabo torcendo ou dobrando o punho com frequência
Algumas cadeiras funcionam melhor para mim, mas não sei bem por quê, e isso parece não ter absolutamente nenhuma relação com preço
Se durmo em um travesseiro alto demais, tenho dor no pescoço e dor de cabeça, e um colchão muito firme parece melhor do que um colchão macio. Acho que isso é mais comum na Ásia
Digitação longa, especialmente ao escrever prosa, dói um pouco, mas em geral melhora rápido. Por outro lado, uma pessoa de cerca de 30 anos que conheci no doutorado usava tudo — suporte para os braços, mesa em pé, teclado e mouse ergonômicos, pausas com timer — e mesmo assim tinha dores fortes. É um caso de azar genético
O ponto central é que qualquer movimento ativa tendões e articulações, e isso realmente parece funcionar
No fim, o que mais ajudou foi usar um programa de pausas que me avisava para tirar as mãos do teclado e alongar, junto com teclado e mouse ergonômicos
Escrevi os detalhes aqui: https://henrikwarne.com/2012/02/18/how-i-beat-rsi/
Alguns anos atrás comecei a sentir uma dor no antebraço parecida, e um teclado dividido ajudou muito
Também programei um Arduino e dois pedais. O pedal esquerdo virava CTRL, o direito virava SHIFT, e, pressionando os dois, virava ALT; funcionou muito bem
Hoje em geral consigo controlar a dor, mas ela às vezes volta, e em certo momento foi realmente assustador pensar que talvez eu tivesse que parar de programar
Se você é um desenvolvedor jovem, leve a sério a frase de que uma onça de prevenção vale uma libra de cura. Invista agora em um ambiente ergonômico, em alongamento e exercício; não insista em digitar com dor; e faça pausas com mais frequência. Se você forçar o corpo além do limite, talvez ele nunca volte completamente a ser como antes
https://github.com/anderspitman/ergo-pedals
Win - Alt - Ctrl - Space - Ctrl - Alt - WinAssim dá para pressionar Ctrl com o polegar e Alt com o indicador. Treinei para sempre usar a tecla modificadora do lado oposto; por exemplo, em Ctrl-S uso o Ctrl da direita
Com esse método, a maioria das combinações de teclas que eram não ergonômicas para mim desapareceu
40 anos é um tempo realmente absurdo. Eu faço isso há 30 anos, 20 deles recebendo para fazer, e acho que entendo razoavelmente bem, mas não chego a esse nível
Fabien é quase um semideus. Considerando até as longas jornadas de trabalho, ele deve estar perto de 100 mil horas nessa área, enquanto eu só sinto que comecei a pisar de verdade nela nos últimos 1 a 3 anos
Neste trabalho, dá para criar algo incrível já no primeiro dia, mas, mesmo depois de décadas, ele continua sendo uma profissão em andamento. Ainda assim, eu gosto muito disso
É verdade que sei muito mais do que há 20 anos, mas sempre parece que há mais camadas. Só neste site, a cada poucos dias encontro algo para adicionar à lista de leitura
De certo modo, é bom não sentir que cheguei ao teto da experiência
Pelo que sei, estenografia é o método mais ergonômico para entrada de dados no computador
Estenografia funciona mapeando combinações de teclas para determinadas saídas, e um mapeamento específico é chamado de “theory”
Um mapeamento é fonético, isto é, baseado no som das palavras. Uma tecla representa o som “Kuh”, outra “ah”, uma terceira “tuh”, e, ao pressionar todas e soltar, sai “cat”. Se você formar “Algorithm” com “Al” “Guh” “Or” “If” “Um”, são 5 toques em vez de 8. E isso sem ter mirado especialmente em eficiência
Outro mapeamento usa formas. Se três teclas da fileira de cima e uma tecla central da fileira de baixo parecem um “T”, isso é mapeado para algo associado a T
Uma theory pode ser qualquer mapeamento que você quiser. A estenografia vem de abreviações inventadas no fim do século XIX, e já existem muitas theories, então não é preciso criar a sua
Mapear palavras ou frases usadas com frequência para teclas confortáveis é chamado de “briefs”. Usando isso de forma extrema, é possível chegar a 370 palavras por minuto em transcrição em tempo real
Claro que não é preciso ser tão bom assim. Para produtividade no trabalho, 30 palavras por minuto já bastam, e, praticando 15 minutos por dia por alguns meses, dá para chegar a 70 palavras por minuto. Se você é programador, consegue
Se você pretende passar a vida inteira digitando no computador, acho melhor aprender estenografia do que otimizar para mapeamentos simples de tecla-saída como QWERTY ou Dvorak. Veja Plover e Javelin
Meu uso do teclado é principalmente atalhos de edição de texto e pontuação, então não sei o quanto a estenografia se encaixaria bem
Algo parecido que tenho é um “dicionário” com mais de 50 aliases de bash de 1 a 3 letras
Também surgiu um pouco de “theory”. Tenho conjuntos de aliases com padrões de nomes definidos conforme subcomandos ou opções de git ou kubectl, e eles são fáceis de lembrar
Para comandos usados com muita frequência, abandono a mnemônica e escolho nomes de 1 ou 2 letras sem relação com o nome do comando. Por exemplo,
r='cd -'. Escolhi “r” porque fica do lado oposto ao Enter, permitindo alternar as duas mãos. Provavelmente isso também é um “brief”O que me levou a começar a acumular aliases foi descobrir o complete-alias[1] e, depois, a opção
progcomp_aliasdo bash. Eu não precisava escolher entre aliases e autocompletar programável; podia usar os dois[1]: https://github.com/cykerway/complete-alias
No meu teclado, consigo pressionar Tab e Return com os polegares. Tarefas relacionadas ao gerenciador de janelas, gerenciamento de múltiplos monitores e janelas também podem ser feitas com dois dedos da mesma mão sem tirar as mãos do teclado
Meu teclado é basicamente um teclado de macros, e “digitação” é um modo específico do teclado. É parecido com vi, mas aplicado ao desktop inteiro
Digito mais de 120 palavras por minuto, e a maioria das teclas que pressiono são abstrações; só o restante são caracteres
Ainda assim, para controlar o computador de forma ergonômica, acho que não há nada como um teclado dividido. Eu tinha interesse em estenografia, mas exigiria esforço demais para algo que provavelmente não me faria chegar à velocidade e ao conforto que tenho hoje
Nunca senti que uma velocidade maior de digitação em palavras por minuto ajudasse na programação
No começo da carreira, trabalhei com alguém que passou uma semana inteira testando e depois mudou apenas um caractere, e isso ficou marcado para mim
E programadores APL provavelmente reagiriam com algo como “o que significa ‘palavra’?”
Se você é iniciante em Vim, antes de comprar um teclado bacana, a primeira coisa a fazer é mapear o Esc para outra tecla
Não faz sentido a tecla mais importante estar onde está hoje. A razão de a tecla para voltar ao modo normal ser ESC é que, antigamente, ela ficava muito mais perto da home row
Pessoalmente, prefiro Caps Lock. Cada sistema operacional oferece suporte fácil a esse remapeamento simples, e ele vale para o sistema inteiro, então dá para usar modos do Vim em outros lugares também. Eu uso principalmente no zsh e no gdb
No geral, ter o Esc por perto é bem conveniente. Faça como preferir, mas espero que você não sofra inutilmente por um motivo histórico bobo
Mesmo quem não usa Vim pode copiar e colar com uma postura menos contorcida só trocando Caps Lock e Control
Para usuários de Vim, recomendo muito mapear Caps Lock para funcionar como Control quando mantida pressionada e como Escape quando tocada rapidamente
spacee sair do modo de inserção comshift+spaceAlguns terminais têm problemas com combinações de modificadores em teclas como space, mas, se você usa Vim em uma ou duas máquinas e pode usar algo como Kitty, deve ser tranquilo
Tive uma lesão por esforço repetitivo uns 15 anos atrás, e a solução foi prestar mais atenção em pressionar exatamente o centro das teclas. Ajuda identificar pelo tato a posição exata antes de pressionar a tecla
Quando a tecla fica na borda esquerda do teclado, fica mais fácil localizar a posição porque há menos risco de apertar por engano a tecla à esquerda da que você queria. Caps Lock também fica na borda esquerda, mas ESC também fica na borda superior, o que ajuda ainda mais
Na minha experiência, as teclas mais fáceis de apertar são ESC e o Control esquerdo, que ficam nos cantos do teclado. As outras teclas de canto, “pause/break” e a seta para a direita, ficam longe demais da home row e são mais difíceis
Entendo o desejo, presente em muitos textos deste site, de mover as mãos o mínimo possível, mas acho que a justificativa está errada. Mesmo em teclados de 36 teclas, em que quase não se move a mão, ainda é preciso sustentar as mãos sobre o teclado com os músculos do braço, e o cérebro humano lida melhor com movimento do que com manter músculos estaticamente contra a gravidade
Assim como o backswing é ergonômico ao bater numa bola com uma raquete de tênis, acho que um backswing muito rápido também é importante na digitação para evitar lesões por esforço repetitivo. Não sei exatamente por quê, mas acho que mover as mãos horizontalmente sobre o teclado reduz a chance de os músculos envolvidos entrarem em “modo congelado”
Ctrl-[com mais frequência. Preciso dar uma olhada no remapeamento do Caps LockProgramo há muito tempo e também digito bastante, mas desde que vi alertas sobre lesões por esforço repetitivo na internet por volta de 1990, tenho tomado cuidado e encontrado um jeito que funciona para mim, então sigo sem desconforto
Uma das coisas importantes quando me sento à mesa é que gosto de manter os pés bem apoiados no chão e a altura do teclado mais baixa do que na maioria das mesas. Também uso uma mesa ajustável para trabalhar em pé
Se isso se parece com você, ao procurar uma mesa elétrica com ajuste de altura, é preciso verificar a altura mínima nas especificações. Por causa da espessura do tampo ou do nivelamento, a altura mínima real pode ser 1 ou 2 polegadas maior. Em especial, os modelos “3-stage” da Amazon descem mais do que os “2-stage”
Às vezes também dá para encontrar mesas fixas de altura baixa. Certa vez, percebi que as pernas de uma mesa branca laminada de um laboratório universitário eram compatíveis com as pernas de uma mesa auxiliar mais baixa da mesma linha e, à noite, troquei discretamente um conjunto delas
De qualquer forma, não gosto de apoios de braço em cadeiras, e, se você usa uma mesa baixa ou uma bandeja para teclado, os apoios podem bater nelas
Se quiser remover os apoios de braço, verifique se eles saem bem antes de gastar muito dinheiro. A Aeron com apoios de braço parece que deve permitir removê-los de forma bem limpa. Algumas cadeiras comerciais tradicionais de escritório também faziam isso bem
Por outro lado, em certas cadeiras de escritório, ao remover os apoios de braço, ficam saliências pesadas de uma estrutura de aço soldada nas laterais, perigosas o bastante para rasgar sua perna algum dia. Os apoios de braço da Steelcase Leap V2 saem, mas não de forma limpa, então, pensando no dinheiro gasto, parece meio bobo
A expressão “arm rest” faz parecer que eles dão descanso a braços cansados, mas nunca senti fadiga nos braços por usar uma cadeira. São completamente disfuncionais, não preciso deles, removo quando tenho escolha e não compro cadeiras com apoio de braço
Outras coisas que faço: caminho bastante, como no trajeto de ida e volta do trabalho, e, de modo geral, me levanto com frequência. Também uso pequenos hacks de rotina, como não deixar na mesa coisas que me fariam ficar sentado por mais tempo, como uma garrafa de água ou um bule de chá; em vez disso, vou pegar um copo de água. Qualquer coisa que faça você levantar é boa, e uma caminhada rápida até a cozinha também ajuda. Mesas para trabalhar em pé também são ótimas
Depois que percebi que boa parte dos meus problemas tinha relação com os ombros, passei a soltá-los de vez em quando com exercícios simples. É por isso que caminhar ajuda. Nadar também é bom
Ficar sentado imóvel por muito tempo deixa os ombros tensos, e os nervos que vão para os punhos e as mãos passam por essa região. O lugar onde você sente dor não é necessariamente o lugar onde está o problema real
Se, estando em pé ou sentado, eu preciso ficar com os cotovelos suspensos no ar, fico desconfortável muito rápido; caso contrário, consigo trabalhar 12 a 14 horas sem problema
Há um elefante nesta sala. Fico me perguntando se todo mundo está ignorando de propósito
Aqui cada um fala do que faz e do que não faz, mas ninguém aborda o enorme problema. É ser destro ou canhoto
Canhotos precisam treinar também a mão direita por causa de equipamentos feitos para a maioria destra. A maioria dos mouses verticais legais é exclusiva para destros e, na verdade, a maioria dos mouses é assim. Até o mouse gamer usado que comprei para usar quando a bateria do meu mouse principal acaba é exclusivo para destros
Câmeras digitais são todas para destros, e a maioria dos celulares também é voltada principalmente para destros
Nós, canhotos, precisamos usar a mão direita, mas a maioria dos destros quase não usa a esquerda
Há 20 anos, quando eu estava na faixa dos 30 e poucos, comecei a usar o mouse com a mão direita também em casa. Sou canhoto, mas trabalhei de 15 a 20 anos em suporte e precisava usar os computadores dos clientes exatamente como estavam configurados; normalmente, o mouse ficava à direita
Uma ex me sugeriu tentar trocar, e o uso das mãos ficou muito mais equilibrado. A mão esquerda, cansada e dolorida, pôde descansar, e a direita, menos usada, passou a dividir o trabalho
Para desenvolver coordenação, também treinei escovar os dentes com a mão direita. Deixando de lado coisas como escalada, você não precisa escalar uma parede para ir trabalhar, mas quase todo mundo precisa escovar os dentes
É bom aprender a usar mais a mão esquerda e experimentar usar o mouse com a esquerda ou usar um touchpad. Também é preciso aprender a escovar os dentes com a mão esquerda
Se você distribuir a carga entre as mãos e os punhos, vai agradecer daqui a algumas décadas
Depois que comecei a sentir dor no punho direito, comprei um Magic Trackpad, coloquei-o à esquerda do teclado e passei a alternar entre o touchpad com a mão esquerda e o mouse com a direita. Funcionou muito bem para mim
Também programei por 40 anos e estou no começo dos 60, e me surpreende que, apesar de ter digitado assim todo esse tempo, eu não tenha tido problemas reais nos punhos
Também fui gamer de WASD+mouse por muito tempo, e acho que jogos causam mais problemas do que programação
Por outro lado, pratico escalada, então meus músculos do antebraço são bem desenvolvidos. Pensar nisso me lembrou de um problema que eu tinha desde criança: às vezes meus joelhos doíam e perdiam força. A solução foi fazer leg extension com carga para fortalecer os músculos de empurrar e chutar
Por isso fiquei me perguntando se problemas nos punhos também não poderiam ser superados com exercícios de fortalecimento
Mas, descendo mais a página, vi que Fabien também é escalador, então minha hipótese parece ser refutada
Não cheguei a 40 anos, mas posso dizer que foram 37 anos, de 1983 a 2020. Também passei mais tempo escrevendo no computador do que o programador médio, e não tive nenhum problema significativo de lesão por esforço repetitivo
Pode ser controverso, mas acho que um dos motivos é que não sou um datilógrafo de toque tradicional. Isso não quer dizer que eu seja lento. Trabalhei provavelmente com mais de mil programadores, e a única pessoa claramente mais rápida do que eu não era programadora, mas minha mãe, uma compositora tipográfica profissional que trabalhou nisso por mais tempo do que eu. Entre outros programadores, dá para contar nos dedos os que pareciam chegar perto
O motivo pelo qual acho que isso tem relação com a ausência de lesão por esforço repetitivo é que, no meu método de mais ou menos sete dedos, minhas mãos ficam se movendo constantemente pelo teclado
Não é aquele jeito de manter os punhos normalmente fixos na mesma posição meio desconfortável e mover só os dedos. Esse jeito maximiza a “repetição” da lesão por esforço repetitivo
Minimizar o movimento das mãos é ruim. Para manter mãos e punhos saudáveis, eles precisam se mover continuamente, como qualquer outro conjunto de músculos, tendões e ligamentos do corpo. É tolice achar que os princípios gerais de exercício e flexibilidade não se aplicam às mãos