Skip to content

Instantly share code, notes, and snippets.

@dseeker
Created March 5, 2026 23:06
Show Gist options
  • Select an option

  • Save dseeker/d01a2d9a85d1fe8b0d50c452e5c3eb14 to your computer and use it in GitHub Desktop.

Select an option

Save dseeker/d01a2d9a85d1fe8b0d50c452e5c3eb14 to your computer and use it in GitHub Desktop.

Lietro — Análise Aprofundada da Plataforma

Uma visão completa do que é o Lietro, a quem serve,
como foi construído e por que é importante

Site   README   Documentação Convert


Índice

  1. O Problema que o Lietro Resolve
  2. As Pessoas que Atende
  3. O Teclado Eletrônico Assistivo (AEL)
  4. Como Funciona a Digitação por Olhar
  5. O Sistema de Experimentos
  6. Dados de Sessão e Gravação
  7. Pipeline de Processamento de Dados
  8. Saída Estatística de Pesquisa
  9. Painel Lietro PRO
  10. Visão Geral da Arquitetura
  11. A Questão de Pesquisa
  12. Escolhas Tecnológicas e Justificativas
  13. Roadmap e Extensibilidade

1. O Problema que o Lietro Resolve

A barreira de comunicação

Milhões de pessoas em todo o mundo vivem com condições que as impedem de usar um teclado convencional: ELA, paralisia cerebral, lesões na medula espinhal, autismo severo ou doenças neurodegenerativas progressivas. Para essas pessoas, a capacidade de digitar uma palavra — compor uma mensagem, responder a uma pergunta ou expressar um pensamento — representa uma barreira fundamental à independência e à conexão humana.

As soluções existentes frequentemente são:

  • Caras ou clinicamente inacessíveis
  • Sem embasamento de pesquisa rigorosa
  • Impossíveis de avaliar objetivamente (a assistência realmente ajuda?)
  • Desconectadas dos pesquisadores que poderiam aprimorá-las

O que o Lietro faz de diferente

O Lietro foi construído do zero para ser mensurável. Cada interação é registrada com precisão de milissegundos. Cada experimento é definido em um protocolo reproduzível. Cada sessão produz dados que podem ser estatisticamente analisados para responder à questão central: a assistência funciona?

Esse ciclo baseado em evidências — projetar a ferramenta, medir seu efeito, aprimorá-la — é o que distingue o Lietro de um produto e o torna um instrumento de pesquisa.

Quem enfrenta essa barreira

 Condições neurológicas
 ├── ELA (doença de Lou Gehrig)
 ├── Esclerose Múltipla
 ├── Doença de Parkinson
 └── Paralisia cerebral

 Condições do desenvolvimento
 ├── Transtorno do Espectro Autista (TEA)
 ├── Deficiências intelectuais
 └── Distúrbios de fala e linguagem

 Lesões adquiridas
 ├── Lesão na medula espinhal (LME)
 ├── Lesão cerebral traumática (LCT)
 └── Paralisia pós-AVC

 Paralisia progressiva
 └── Síndrome do encarceramento completo
     (apenas o movimento ocular permanece)

2. As Pessoas que Atende

Usuários finais — os humanos no centro

Crianças com Transtorno do Espectro Autista (TEA) Muitas crianças com TEA têm dificuldade com interfaces tradicionais de comunicação e aprendizado. O Lietro oferece:

  • Alvos visuais grandes e claros (redução da sobrecarga sensorial)
  • Associações simbólicas entre imagens, texto e palavras faladas
  • Reforço positivo com animações e áudio em respostas corretas
  • Ritmo configurável para que as crianças trabalhem no seu próprio tempo
  • Jogos de palavras que tornam o aprendizado envolvente em vez de clínico

Pessoas com paralisia motora completa ou quase completa Para alguém com ELA ou síndrome do encarceramento, o único movimento voluntário restante pode ser o movimento ocular. O modo Ocular do Lietro transforma a direção do olhar em texto digitado:

  • Olhe para uma letra → fixe por uma duração configurada → a letra é selecionada
  • Sem interruptores, sem hardware de rastreamento de cabeça além da tela
  • Tempo de fixação configurável de acordo com a capacidade de controle ocular do usuário
  • O AEL prevê as letras seguintes mais prováveis para reduzir o número de seleções

Pessoas com controle motor parcial O modo Digital baseado em toque com sensibilidade configurável apoia usuários que:

  • Podem tocar uma tela, mas com precisão ou força limitadas
  • Usam um único dedo, dedo do pé ou caneta stylus
  • Precisam de alvos maiores e tempos de resposta mais lentos
  • Se beneficiam de assistência preditiva no teclado

Terapeutas e clínicos O Lietro PRO oferece aos terapeutas as ferramentas de que realmente precisam:

  • Revisar cada sessão em detalhes, com temporização e precisão visíveis
  • Acompanhar o progresso ao longo de múltiplas sessões
  • Armazenar dados psicométricos junto com as gravações de sessão
  • Exportar dados estruturados para inclusão em relatórios clínicos

Pesquisadores em neurociência e acessibilidade A plataforma foi construída explicitamente para uso em pesquisa:

  • Protocolos JSON reproduzíveis garantem que experimentos possam ser replicados
  • Exportações de dados brutos em formatos que se conectam a ferramentas de análise científica
  • Relatórios estatísticos com fórmulas dinâmicas para análise colaborativa
  • Comparação entre condições com e sem assistência, com metodologia rigorosa

3. O Teclado Eletrônico Assistivo (AEL)

┌─────────────────────────────────────────────────────────┐
│                  AEL — Português ASSIST                  │
│                                                         │
│   O teclado assistivo exibido ao usuário                │
│                                                         │
│  ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐    │
│  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Ç │ ← │    │
│  ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤    │
│  │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ~ │ ´ │   │    │
│  ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤    │
│  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │   │   │   │    │
│  └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘    │
│              [ previsões / sugestões ]                  │
└─────────────────────────────────────────────────────────┘

O que o AEL faz

O Teclado Eletrônico Assistivo não é apenas um teclado visual — é uma camada de interface adaptativa que:

Funcionalidade Descrição
Sugestões preditivas Após cada letra, o AEL exibe as próximas letras ou completamentos de palavras mais prováveis, reduzindo as seleções necessárias
Seleção por fixação No modo Ocular, uma letra é escolhida ao olhar para ela por uma duração configurável (sem necessidade de clicar)
Alternância de modo Alterna de forma transparente entre tentativas com assistência (Com AEL) e sem assistência (Sem AEL) dentro de uma sessão
Controle de temporização Configuração por série de delay de leitura, janela de escrita e pausa entre palavras
Suporte a acentos Suporte completo a caracteres diacríticos do Português (á, ã, ê, ç, etc.)
Layout configurável Pode ser configurado para os modos QWERTY, Estendido ou Assistivo; suporta 5 idiomas

Modo Com AEL vs. Sem AEL

Um dos recursos de pesquisa mais importantes é a capacidade de executar tentativas com e sem assistência dentro da mesma sessão. A configuração de protocolo "mode": [0, 1] faz o teclado alternar — tentativa 1 com AEL ativado, tentativa 2 com AEL desativado. Isso permite uma comparação direta dentro do mesmo sujeito, controlando os efeitos de aprendizado.


4. Como Funciona a Digitação por Olhar

A experiência de digitação Ocular

Passo 1: Palavra aparece na tela
   ┌────────────────────────┐
   │                        │
   │       M Á Q U I N A    │  ← Palavra exibida por read_delay segundos
   │                        │
   └────────────────────────┘

Passo 2: Palavra desaparece → luz verde → temporizador inicia
   ┌────────────────────────┐
   │                        │
   │          ● (verde)     │  ← Usuário deve agora digitar a palavra de memória
   │                        │
   └────────────────────────┘

Passo 3: Usuário fixa o olhar nas letras do teclado AEL
   - Olha para M → fixa → M selecionado
   - Olha para Á → fixa → Á selecionado
   - Continua até a palavra estar completa

Passo 4: Sessão registra:
   { ty: "newWord",    ti: 1621000, wo: "MÁQUINA", mo: 1 }
   { ty: "writeStart", ti: 1621600 }  ← tempo de leitura = 600ms
   { ty: "writeEnd",   ti: 1624200, df: 0.98 }  ← tempo de escrita = 2600ms

Por que isso é tecnicamente difícil

  • O teclado deve ser grande o suficiente para precisão de fixação, mas caber em uma tela de tablet
  • Caracteres acentuados do Português exigem combinações de múltiplos toques (teclas mortas)
  • A transição entre os estados de "leitura" e "escrita" deve ser registrada com timestamps exatos
  • O olhar introduz movimentos involuntários — a janela de fixação deve ser ajustada por usuário
  • Tanto a operação sem as mãos quanto a carga cognitiva de memorizar uma palavra enquanto a digita são desafios significativos sendo medidos

5. O Sistema de Experimentos

Estrutura do protocolo

Os experimentos são definidos em arquivos JSON que especificam cada etapa da sessão com precisão:

{
  "sequence": "prompt",
  "series": [
    {
      "options": {
        "mode": [0, 1],       // alterna: tentativa 1 com assistência, tentativa 2 sem assistência
        "suggestions": 0,     // previsões do AEL ativadas/desativadas
        "sequence": 1
      },
      "keyboard": "Português ASSIST",
      "read":  0.6,           // segundos que a palavra é exibida antes de desaparecer
      "pause": 0.1,           // segundos entre o desaparecimento da palavra e o sinal de início
      "write": 3.0,           // segundos que o usuário tem para digitar
      "delay": 0,
      "items": [
        "GIRAR",
        "JÚBILO",
        "MÁQUINAS",
        "ÓRFÃO",
        "REPOLHO"
      ]
    }
  ]
}

Dimensões do experimento

O desenho de pesquisa captura o desempenho em múltiplas dimensões cruzadas:

                    ┌── Ocular (olhar)
  Método de Entrada ┤
                    └── Digital (toque)

                    ┌── Palavras individuais  (5–8 chars)
  Tipo de Conteúdo ─┤
                    └── Frases               (3–5 palavras)

                    ┌── Com AEL  (Com assistência)
  Assistência ──────┤
                    └── Sem AEL  (Sem assistência)

                    ┌── Série 1
  Repetição ────────┤
                    └── Série 2  (efeitos de aprendizado / fadiga)

Esse desenho 2×2×2×2 produz 16 condições, permitindo que pesquisadores isolem quais fatores mais influenciam o desempenho na digitação.

Justificativa para seleção de palavras

As palavras nos protocolos em Português foram especificamente escolhidas para:

  • Incluir caracteres diacríticos (Ç, Ã, Ê, Ó) que são mais difíceis de digitar com assistência
  • Variar em comprimento (4–8 caracteres para palavras; 3–5 palavras para frases)
  • Ser familiares o suficiente para memorizar rapidamente durante a breve janela de leitura
  • Não se repetir entre séries para evitar aprendizado específico de itens

6. Dados de Sessão e Gravação

O que é registrado

Cada sessão produz um arquivo JSON estruturado capturando a interação completa:

{
  "date": 1621000000,
  "code": 20000,
  "filename": "2021-05-14_18-30-00",
  "device": "ARM, Adobe Systems Incorporated - Android, StandAlone, 1.0, 1080x1920, 480 DPI",
  "timeGMT": "14/04/2021, 18:30:00",
  "user": "participante_01",
  "touchEvents": [
    { "ty": "newWord",    "ti": 1000,  "wo": "GIRAR",  "mo": 1 },
    { "ty": "writeStart", "ti": 1620 },
    { "ty": "writeEnd",   "ti": 4100,  "df": 1.0 },
    { "ty": "newWord",    "ti": 5200,  "wo": "JÚBILO", "mo": 0 },
    { "ty": "writeStart", "ti": 5840 },
    { "ty": "writeEnd",   "ti": 9300,  "df": 0.92 },
    ...
  ]
}

Tipos de eventos

Evento Valor ty Campos principais Significado
Palavra exibida newWord wo (palavra), mo (modo) Início de uma nova tentativa
Digitação iniciada writeStart ti (timestamp) Usuário começou a digitar (tempo de leitura termina aqui)
Digitação encerrada writeEnd ti, df (precisão 0–1) Usuário terminou ou o tempo expirou

Por que a precisão de milissegundos importa

A diferença entre o tempo de leitura (newWord → writeStart) e o tempo de escrita (writeStart → writeEnd) é a variável dependente central. Pesquisadores podem perguntar:

  • O AEL reduz o tempo de escrita? (eficiência motora)
  • Ele aumenta o tempo de leitura? (sobrecarga cognitiva ao avaliar sugestões)
  • O efeito é diferente para entrada Ocular vs. Digital?

Sem timestamps de milissegundos, essas perguntas são impossíveis de responder.


7. Pipeline de Processamento de Dados

Arquitetura

convert-new.js  (ponto de entrada CLI)
    │
    ├── config/
    │   ├── experiment-loader.js    Lê protocolo-experimento.json
    │   └── paths.js                Resolve caminhos de arquivo de entrada/saída com segurança
    │
    ├── processors/
    │   ├── trial-processor.js      Agrupa touchEvents em tentativas
    │   │                           Calcula: readingTime, writingTime, accuracy
    │   │                           Valida: sequências completas, ordem de timestamps
    │   └── statistics-generator.js Produz estatísticas resumidas por categoria
    │
    ├── exporters/
    │   ├── csv-exporter.js         CSV UTF-8 com aspas compatíveis com Excel
    │   ├── excel-exporter.js       XLSX com formatação EXPA1507 + fórmulas dinâmicas
    │   └── json-exporter.js        JSON estruturado preservando strings de fórmulas
    │
    └── utils/
        ├── logger.js               Registro configurável (debug/info/error)
        └── validators.js           Segurança de caminhos, integridade de dados, intervalos de valores

Etapas de processamento

Arquivo JSON bruto
     │
     ▼
1. ANALISAR    Ler arquivo, validar estrutura JSON, verificar campos obrigatórios
     │
     ▼
2. EXTRAIR     Varrer array touchEvents → agrupar em triplas (newWord, writeStart, writeEnd)
               Ignorar triplas incompletas, registrar avisos
     │
     ▼
3. CATEGORIZAR Combinar a palavra de cada tentativa com o protocolo do experimento
               Atribuir: método de entrada (Ocular/Digital), tipo de conteúdo (Palavra/Frase), série (1/2)
     │
     ▼
4. CALCULAR    Para cada tentativa:
               readingTime  = writeStart.ti − newWord.ti
               writingTime  = writeEnd.ti  − writeStart.ti
               accuracy     = writeEnd.df  × 100
               perCharRate  = writingTime  / charCount
               mode         = newWord.mo   → atribui à coluna Com AEL ou Sem AEL
     │
     ▼
5. AGREGAR     Agrupar por categoria → calcular estatísticas
               (média, desvio padrão, contagem, razão, variação percentual)
     │
     ▼
6. EXPORTAR    Escrever no(s) formato(s) escolhido(s)

Filosofia de tratamento de erros

Em vez de falhar com dados inválidos, o conversor aplica degradação elegante:

  • Sequências de tentativas incompletas são ignoradas com uma entrada de log de aviso
  • Valores de precisão ausentes assumem uma fórmula à prova de erros
  • Cenários de divisão por zero no Excel são encapsulados em IFERROR
  • Pesquisadores veem espaços em branco limpos em vez de erros #DIV/0!

8. Saída Estatística de Pesquisa

O formato de relatório de 18 colunas

# Coluna Descrição
1 Grupo Categoria do experimento (ex.: "Palavras Ocular 1")
2 Série Número da série dentro do experimento
3 Tentativa Índice da tentativa dentro da série
4 Palavra A palavra ou frase apresentada
5 Chars (c/ espaços) Contagem total de caracteres incluindo espaços
6 Chars (s/ espaços) Contagem de caracteres excluindo espaços
7 Tempo de Leitura — Com AEL Tempo de leitura em ms (condição com assistência)
8 Tempo de Escrita — Com AEL Tempo de escrita em ms (condição com assistência)
9 Por Char — Com AEL ms por caractere (condição com assistência)
10 Precisão — Com AEL Percentual correto (condição com assistência)
11 Tempo de Leitura — Sem AEL Tempo de leitura em ms (condição sem assistência)
12 Tempo de Escrita — Sem AEL Tempo de escrita em ms (condição sem assistência)
13 Por Char — Sem AEL ms por caractere (condição sem assistência)
14 Precisão — Sem AEL Percentual correto (condição sem assistência)
15 Tempo desde o início Tempo decorrido desde o início da sessão (ms)
16–18 Linhas de estatísticas Estatísticas resumidas baseadas em fórmulas

Seções de estatísticas no Excel

Cada arquivo Excel exportado inclui três blocos de estatísticas:

┌─────────────────────────────────────────────┐
│  GERAL (Todas as condições combinadas)      │
│  ├─ Contagem                                │
│  ├─ Tempo médio de leitura  Com AEL / Sem AEL│
│  ├─ Tempo médio de escrita  Com AEL / Sem AEL│
│  ├─ Desvio padrão           Com AEL / Sem AEL│
│  └─ Razão (AEL/SemAEL × 100)  ← texto vermelho│
├─────────────────────────────────────────────┤
│  OCULAR (Somente tentativas por olhar)      │
│  ├─ Palavras                                │
│  └─ Frases                                  │
├─────────────────────────────────────────────┤
│  DIGITAL (Somente tentativas por toque)     │
│  ├─ Palavras                                │
│  └─ Frases                                  │
└─────────────────────────────────────────────┘

Padrão de formatação EXPA1507

A saída Excel segue o padrão de documento de pesquisa profissional EXPA1507:

Elemento de formato Valor Finalidade
Fonte Arial 10pt Aparência acadêmica consistente
Dados normais Texto preto Legibilidade padrão
Texto vermelho (#C00000) Inconsistências de nomenclatura, valores de razão Sinalizar itens que precisam de atenção do pesquisador
Fórmulas Excel nativo (=IFERROR(ROUND(...))) Recálculo dinâmico quando os dados são editados
Alinhamento de colunas Alinhamento por tipo Números à direita, texto à esquerda

9. Painel Lietro PRO

Quem o utiliza

O painel PRO é a interface profissional para terapeutas, gestores de clínicas e administradores de pesquisa. É distinto do aplicativo de experimento — seu papel é após a sessão: revisar, analisar, gerenciar.

Principais capacidades

Gerenciamento de Sessões

  • Navegar por todas as sessões gravadas por participante, data ou experimento
  • Revisar linhas do tempo individuais de sessão com detalhamento por tentativa
  • Marcar sessões para acompanhamento ou exclusão da análise

Análises e Visualização

  • Gráficos de desempenho mostrando tendências de tempo de leitura/escrita entre sessões
  • Mapas de calor identificando padrões de precisão por tipo de palavra ou condição
  • Visualizações comparativas: participante individual vs. média do grupo
  • Acompanhamento de progresso ao longo da linha do tempo terapêutica

Administração de Dados

  • Acesso baseado em funções: admin, pesquisador, terapeuta, somente leitura
  • Gerenciamento de participantes multiusuário
  • Exportação de dados em massa: CSV para ferramentas de planilha, JSON para uso programático
  • Saídas compatíveis com MatLab, Psychart, Sage, SciPy

Conteúdo e Configurações

  • Editor de texto rico para notas de sessão e observações clínicas
  • Parâmetros de experimento configuráveis sem editar JSON diretamente
  • Gerenciamento de perfil de usuário e persistência de configurações

Base técnica

Construído sobre vue-element-admin v4.2.1:

Vue.js 2.6.10        — framework de UI reativa
Element UI 2.13.0    — biblioteca de componentes (tabelas, formulários, diálogos)
Vuex 3.1.0           — gerenciamento de estado global
Vue Router 3.0.2     — roteamento client-side com guardas de permissão
ECharts 4.9.0        — gráficos interativos e mapas de calor
Axios 0.18.1         — cliente HTTP com interceptors
i18n                 — internacionalização
Mock.js              — API mock para desenvolvimento front-end

10. Visão Geral da Arquitetura

Componentes do sistema e fluxo de dados

┌────────────────────────────────────────────────────────────────────┐
│  CAMADA DE DISPOSITIVO  (tablet / mobile / desktop)                │
│                                                                    │
│   ┌─────────────────────┐    ┌─────────────────────┐              │
│   │   Aplicativo Lietro │    │   TecladoMagico      │              │
│   │   (pesquisa completa)│    │   (uso clínico)      │              │
│   │   Adobe AIR / AS3   │    │   Adobe AIR / AS3    │              │
│   └──────────┬──────────┘    └──────────┬───────────┘              │
│              │  JSON touchEvents                │                  │
└──────────────┼─────────────────────────────────┼──────────────────┘
               │                                 │
               ▼                                 ▼
┌────────────────────────────────────────────────────────────────────┐
│  CAMADA DE ARMAZENAMENTO                                           │
│   Armazenamento local ──► Sincronização Dropbox / S3 ──► Arquivos no servidor│
└────────────────────────────┬───────────────────────────────────────┘
                             │  arquivos .json de sessão
               ┌─────────────┼──────────────────┐
               ▼             ▼                  ▼
┌──────────────────┐  ┌────────────┐  ┌──────────────────┐
│  Lietro Convert  │  │  Session   │  │   prodb (PHP)    │
│  CLI Node.js     │  │  Filter    │  │   banco de dados  │
│                  │  │  Vue + PWA │  │   backend         │
│  *.csv  *.xlsx   │  │            │  │                  │
│  *.json relatórios│  │  Navegar & │  │  Registros de    │
│                  │  │  filtrar   │  │  participantes &  │
└──────────────────┘  │  sessões   │  │  configurações   │
                      └────────────┘  └────────┬─────────┘
                                               │
                                               ▼
                              ┌─────────────────────────────┐
                              │   Lietro PRO                │
                              │   Painel Admin Vue.js       │
                              │                             │
                              │   Revisar · Analisar · Exportar│
                              └─────────────────────────────┘

Os módulos centrais em ActionScript 3

O aplicativo de experimento é estruturado em torno de um objeto central App que conecta:

Módulo Responsabilidade
MenteAbertaApp Bootstrap, identidade do app (Lietro vs TecladoMagico), conexão de módulos
Settings Carregar/salvar configuração do usuário e do app a partir do sistema de arquivos
Input Captura de eventos multitouch, reconhecimento de gestos, alternância de modo
Sensors Acelerômetro e orientação do dispositivo para UI adaptativa
Session Registrar início/fim, timestamps, array touchEvents, exportação JSON
Score Cálculo de precisão, lógica de reforço, estado do jogo
WordDictionary Corpus de palavras em Português de 355KB para validação e sugestões
Graphics Renderização de UI, exibição do teclado, animação, transições de estado
React Barramento de eventos / propagação de estado reativo entre módulos
WebBridge Comunicação com o backend PHP para sincronização de dados do usuário
PHPClient Cliente HTTP para chamadas à API do backend
Dropbox Sincronização de arquivos de sessão via API do Dropbox

11. A Questão de Pesquisa

O que o Lietro tenta responder

Um Teclado Eletrônico Assistivo (AEL) realmente melhora o desempenho na digitação para pessoas com deficiências motoras — ou atrapalha?

Isso não é óbvio. A assistência preditiva adiciona carga cognitiva (você deve avaliar sugestões), introduz latência e altera o ritmo da digitação. Para alguns usuários em algumas condições ela ajuda; para outros pode prejudicar. A única forma de saber é medir.

As variáveis de pesquisa

Variáveis independentes (o que o experimento controla)

  • Método de entrada: Ocular (olhar) vs. Digital (toque)
  • Conteúdo: Palavras vs. Frases
  • Assistência: Com AEL (com assistência) vs. Sem AEL (sem assistência)
  • Série: 1ª repetição vs. 2ª repetição

Variáveis dependentes (o que o experimento mede)

  • Tempo de leitura (processamento cognitivo: reconhecimento de palavras + planejamento)
  • Tempo de escrita (execução motora: de fato digitar)
  • Taxa por caractere (normalizada pelo comprimento da palavra)
  • Precisão (percentual de caracteres corretos)

O que as estatísticas revelam A razão percentual (Com AEL / Sem AEL × 100) indica aos pesquisadores se a assistência do AEL produz um benefício de velocidade. Uma razão < 100 significa que com assistência é mais rápido. Uma razão > 100 significa que sem assistência é mais rápido. A sinalização em texto vermelho no Excel destaca casos em que a razão merece atenção.

Por que separar os tempos de leitura e escrita importa

Tempo ─────────────────────────────────────────────────────────►

 │◄── TEMPO DE LEITURA ──►│◄───────── TEMPO DE ESCRITA ─────────►│
 │                         │                                      │
newWord                writeStart                            writeEnd
evento                 evento                                evento
 │                         │                                      │
 └── carga cognitiva        └── habilidade motora + efeito do AEL ┘
     (reconhecimento de         (velocidade de digitação, destreza,
      palavras, planejamento,    uso de previsão)
      memória)

Um pesquisador que descobrir que o AEL reduz o tempo de escrita mas aumenta o tempo de leitura concluiria: a assistência ajuda na execução motora, mas adiciona sobrecarga cognitiva durante a fase de planejamento. Essa nuance só é visível porque os eventos são registrados separadamente.


12. Escolhas Tecnológicas e Justificativas

Escolha Por quê
Adobe AIR / ActionScript 3 App mobile multiplataforma (iOS + Android) a partir de uma única base de código em meados dos anos 2010; multitouch nativo; sem limitações de sandbox do navegador; acesso ao sistema de arquivos para armazenamento de sessão
Motor de física Adobe Flash Animações suaves com aceleração de hardware exigidas pela interface assistiva; PhysicsEngine.as personalizado fornece feedback realista do teclado
Protocolos de experimento em JSON Legível por humanos, versionável, compartilhável entre pesquisadores sem alterações de código; permite replicação exata
Node.js para conversão Processamento de I/O rápido, ecossistema npm (ExcelJS), executa nos laptops de pesquisadores sem atrito de instalação; ≥Node 16 para fs/promises nativo
ExcelJS para saída Excel Controle total sobre formatação de células, inserção de fórmulas nativas e requisitos de estilo EXPA1507; suporta streaming para arquivos grandes
Vue.js 2 + Element UI Ecossistema comprovado de painel administrativo (vue-element-admin); grande biblioteca de componentes; i18n integrado; bem compreendido por desenvolvedores web familiares ao projeto
Quasar + PWA para o app filtro Instalável nos dispositivos de pesquisadores; acesso offline a metadados de sessão sem dependência de servidor

13. Roadmap e Extensibilidade

Adicionando um novo formato de exportação

A arquitetura modular do conversor torna isso simples:

1. Criar src/exporters/meu-formato-exporter.js
   export async function exportMeuFormato(data, outputPath, config) { ... }

2. Registrar no seletor de formato em convert-new.js

3. Adicionar script npm em package.json:
   "meu-formato": "node convert-new.js --format=meuformato"

Adicionando um novo protocolo de experimento

1. Criar app/experiments/meu-protocolo.json
   seguindo o esquema series/options/items

2. Referenciar em config/convert.config.js
   protocolFile: './experiments/meu-protocolo.json'

3. Executar npm run xlsx — o conversor auto-categoriza
   palavras/frases do novo protocolo

Estendendo o desenho de pesquisa

Adicionar uma nova condição (ex.: modo de entrada por voz) requer:

  • Novo valor mode nas opções do protocolo
  • Novo tratamento de eventos em Input.as
  • Novo par de colunas na saída de métricas em trial-processor.js
  • Nova seção de estatísticas em statistics-generator.js

A separação clara entre lógica de processamento e lógica de exportação significa que a saída de formato não precisa ser alterada.



Lietro — dando a cada mente as ferramentas para se comunicar.

Mindspecial · Renato Malcher · Daniel Siqueira · Laura Santos

Voltar ao README

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment