Glossário
As palavras que estes guias usam, cada uma explicada para quem a vê pela primeira vez. Uma palavra em itálico tem a sua própria entrada. Os termos ficam em inglês quando é assim que aparecem no código.
Backend
A parte do navegador com que o gráfico desenha: WebGPU onde o navegador tem, WebGL2 onde não tem, e um canvas 2D desenhado na CPU quando não tem nenhum dos dois. O gráfico escolhe o melhor sozinho; todo backend desenha o mesmo quadro.
Base
A largura de tempo dos buckets mais finos da pirâmide, o seu nível 0 — um segundo por padrão. Escolha mais ou menos o espaçamento dos seus pontos: veja a pirâmide.
Bucket
Um resumo dos pontos de um trecho de tempo em oito números: o tempo e o valor do primeiro e do último ponto, o menor e o maior valor, quantos pontos, e a soma dos pesos. Dois buckets vizinhos se juntam num só sem voltar aos pontos.
ABI em C
A Application Binary Interface: como um programa compilado chama uma
biblioteca — que funções existem, e como os argumentos ficam na
memória. O nonius-capi dá ao Nonius uma em C, então qualquer
linguagem que chama C pode usá-lo. O número de versão muda quando esse
arranjo muda.
Coluna
Uma coluna de pixels do gráfico. Uma vista distribui o seu intervalo de tempo pelas colunas, e o gráfico lê um resumo por coluna.
CORS
Cross-Origin Resource Sharing: a regra pela qual o navegador deixa
uma página ler um servidor em outro endereço. O servidor diz quem pode,
em cabeçalhos; o nonius-server permite qualquer página.
Crate
Um pacote Rust, publicado no crates.io. O Nonius são sete deles, do
nonius-format (os bytes) ao nonius-server (o programa).
Pixel do dispositivo e razão de pixels
Os pixels da própria tela. Uma página é diagramada em pixels CSS; numa tela nítida, um pixel CSS são dois ou três pixels do dispositivo, a sua razão de pixels. O gráfico desenha em pixels do dispositivo, então as linhas ficam nítidas.
ETag
Uma etiqueta curta que o servidor dá a uma resposta — o
nonius-server usa um hash dos bytes. Um cliente que já tem a resposta
pergunta de novo com a etiqueta e recebe 304 Not Modified, sem corpo,
se nada mudou.
Expoente
Veja escala.
Quadro
Dois sentidos. Na tela, uma imagem que o gráfico desenha — sessenta por segundo enquanto a pessoa arrasta. Num feed ao vivo, uma mensagem numerada que traz pontos novos.
Lacuna
O maior tempo entre dois pontos que a linha ainda liga. Além dele, a linha quebra. Por padrão todo ponto é ligado; você define a lacuna pelo que sabe dos seus dados.
Nível
Uma camada da pirâmide. Os buckets do nível 0 têm a largura da base; cada nível acima é quatro vezes mais largo.
Feed ao vivo
Pontos enviados conforme acontecem, por um WebSocket, em quadros numerados. Um quadro que a rede perde é notado pelo número que falta e pedido de novo.
Metadados
A descrição de uma série, como um servidor a responde em JSON: o intervalo de tempo, a escala, a pirâmide, o último ponto. O gráfico os lê antes de qualquer tile.
NSB1
O formato de arquivo de série do Nonius: as três colunas dos pontos
(tempo, valor, peso), a escala e uma soma de verificação, num
contêiner cujos primeiros bytes são NONIUSB1. É lido onde cai na
memória, sem etapa de decodificação. O arquivo costuma terminar em
.nsb.
Pick
Achar o ponto embaixo do cursor: o gráfico faz isso para a mira, e um
servidor responde /pick para uma página que mostra a sua imagem.
Ponto
A única coisa que todo pacote recebe: t, v e w, três inteiros —
um tempo em nanossegundos desde 1970 (UTC), um valor, um peso.
Protocolo
As regras para perguntar a um servidor sobre uma série por HTTP: que
endereços existem e que bytes cada um responde. Escrito para ser
implementado sem o código do Nonius; o nonius-server é a referência.
Pirâmide
Uma série resumida em várias larguras de tempo, cada nível quatro vezes mais largo que o de baixo, para que uma vista de qualquer tamanho leia alguns milhares de buckets em vez de todos os pontos — e desenhe exatamente a mesma linha.
Arquivo de pirâmide
Uma série e a sua pirâmide construída num arquivo só, guardadas nas colunas do próprio protocolo. Um servidor o mapeia e inicia na hora, seja qual for o tamanho.
Pontos crus
Os próprios pontos, não resumos. Uma vista funda o bastante num zoom os lê.
Escala
Quantas casas decimais os valores de uma série têm. Com escala 2, o
inteiro 2137 quer dizer 21,37. Também chamada de expoente.
Série
Os pontos de uma grandeza ao longo do tempo, em ordem de tempo: um sensor, um instrumento, uma métrica.
Still
Um quadro desenhado na CPU como imagem PNG, sem janela e sem GPU.
Tile
Um pedaço pequeno de uma série cortado para uma vista, para que o gráfico busque só o que a tela mostra. Um tile de colunas guarda resumos de um nível; um tile cru guarda os pontos crus de um trecho de tempo.
Fuso horário
A regra de um lugar para o seu horário local, com o nome do banco de
dados IANA, como Europe/Lisbon. O Nonius guarda todo tempo em UTC; um
fuso muda só os rótulos.
WebAssembly
Um formato compacto de programa que o navegador roda quase na velocidade nativa. O núcleo Rust do Nonius é compilado para ele, então o navegador roda o mesmo código que o servidor. Muitas vezes escrito wasm.
WebGL2 e WebGPU
As duas formas do navegador desenhar na placa de vídeo. O WebGPU é o mais novo; o WebGL2 está em todo lugar. Veja backend.
WebSocket
Uma conexão que a página mantém aberta com um servidor, para que o servidor mande dados no momento em que os tem. Um feed ao vivo roda sobre um.
Peso
O w de um ponto: quanto ele conta — 1 para uma leitura simples, o
volume de uma negociação. Os resumos somam os pesos.
Canvas 2D
A superfície de desenho simples do navegador, desenhada pela CPU. O último backend do gráfico, usado quando o navegador não tem WebGPU nem WebGL2.