FNSP Web Page

Tag

Informática

O seletor que faltava ao CSS: :has()

O CSS sempre soube descer: escolher os filhos de um elemento, os irmãos a seguir, os descendentes. Nunca soube subir — não havia forma de dizer "o cartão que tem uma imagem lá dentro". O :has() resolve isso, e está em todos os browsers atuais. 1. Ler ao contrário /* Um cartão que tenha imagem fica c…

Ler o artigo

Logs: o que registar, e o que nunca

Os registos servem para responder a uma pergunta que se faz sempre tarde: o que é que aconteceu às 3 da manhã? Um registo que não responde a isso é papel; um que responde de mais é um problema legal. 1. Níveis, e o que cabe em cada um error — falhou e alguém tem de saber. Uma exceção, uma gravação r…

Ler o artigo

Os quatro erros clássicos com async/await

O async/await tornou o código assíncrono legível como se fosse sequencial. E é precisamente por parecer sequencial que se cometem estes quatro erros — todos eles passam despercebidos em desenvolvimento. 1. Esperar por coisas que não dependem umas das outras // 900 ms: três esperas de 300 ms, uma atr…

Ler o artigo

Modais sem biblioteca: o elemento dialog

Durante anos, pôr um modal numa página significava escolher uma biblioteca — ou reescrever à mão o mesmo conjunto de problemas: o fundo escurecido, o foco preso lá dentro, o Escape a fechar, o scroll da página por trás. O elemento <dialog> traz isso tudo de origem, e está em todos os browsers atuais…

Ler o artigo

DNS: o que acontece antes do primeiro byte

Escreve-se um endereço e a página aparece. Pelo meio há uma cadeia de perguntas que vale a pena conhecer — nem que seja para saber onde olhar quando um site "não abre só para si". 1. A cadeia O browser precisa de um número — 185.199.108.153 — e só tem um nome. Para o descobrir, pergunta a um resolve…

Ler o artigo

JWT: o que é, e sobretudo o que não é

O JSON Web Token é três blocos de texto separados por pontos. Vale a pena saber exatamente o que cada um faz, porque quase todos os erros com JWT vêm de lhe atribuir propriedades que ele não tem. eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMiLCJub21lIjoiQW5hIn0.4pcPyMD09olPSyXnrXCjTw └── cabeçalho ──────┘ └─…

Ler o artigo

Rebase ou merge: a regra que resolve a discussão

É das discussões mais antigas em qualquer equipa, e tem uma regra simples por baixo de todo o barulho. 1. O que cada um faz O merge junta dois ramos com um commit novo. A história fica como aconteceu: dois caminhos que se encontraram. * 9f2a1b merge do ramo funcionalidade |\ | * 7b2e44 acrescenta va…

Ler o artigo

Gostávamos de saber quantas pessoas visitam o site, com o Google Analytics. Sem a sua autorização não corre nada. Política de Privacidade.