3 pontos por GN⁺ 2024-12-07 | 2 comentários | Compartilhar no WhatsApp
  • everyuuid.com é uma página simples em formato de lista que mostra índices numéricos e strings UUID lado a lado
  • Cada item é composto por um longo número preenchido com zeros, um índice e, na linha seguinte, um UUID com hífens
  • As strings UUID seguem o formato UUID V4, em que o terceiro grupo começa com 4, exibindo valores como 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • O corpo não traz explicações sobre método de geração, uso, API ou código, ficando mais próximo de uma simples consulta à própria lista
  • O intervalo verificado vai de 0 a 49, e as informações efetivas da página se concentram no título e na lista de UUIDs

Estrutura que mostra números e UUIDs lado a lado

  • O título é Every UUID V4
  • O corpo é composto por uma lista repetida de itens numéricos e strings UUID
  • O intervalo resumido vai de 0 a 49

Como os itens são exibidos

  • Cada item tem uma estrutura de duas linhas
    • Primeira linha: uma longa string de 0 seguida pelo número do índice
    • Segunda linha: uma string UUID separada por hífens
  • O exemplo inicial é o seguinte
    • 000000000000000000000000000000000000 0
    • 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • O último item fornecido é o seguinte
    • 00000000000000000000000000000000000 49
    • 08716598-71f7-4e8b-9fff-e36d2c5d21fe

Uma página mais próxima de uma lista de dados do que de uma explicação

  • As strings UUID usam a notação UUID separada por hífens
  • Não há explicação sobre o princípio de geração dos UUIDs, critério de ordenação, intervalo completo, função de busca, licença ou forma de implementação
  • É fornecida apenas uma lista de dados, sem explicação técnica nem instruções de uso

2 comentários

 
nemorize 2024-12-13

A frase mais ofensiva que consegui criar com leetspeak/hexspeak foi esta:
fe11a710-babe-4150-ace5-b19b1accd1cc
(Sim, é um UUID válido)
(Sinto muitíssimo)

oh... 👀

 
GN⁺ 2024-12-07
Comentários no Hacker News
  • O que mais impressiona é o fato de a busca realmente funcionar. Como toda boa mágica, depois que você ouve a explicação, ela até parece muito simples.
    Um post explicando como o projeto funciona, para quem ficou curioso: https://eieio.games/blog/writing-down-every-uuid/
    No começo eu só tentei buscar UUIDs exatos, mas fiquei ainda mais surpreso ao descobrir que ele também oferece suporte a busca de texto completo.

    • Fico muito feliz que o truque tenha parecido mágico. Quando percebi que isso era possível, também fiquei surpreso e encantado, mas não tinha certeza se outras pessoas sentiriam a mesma coisa.
      Claro, também me orgulho de ele oferecer tanta utilidade prática. Finalmente dá para encontrar e usar um UUID que se encaixe exatamente no que você precisa.
    • É um bom exemplo da observação do Teller: “mágica às vezes é apenas alguém dedicar a algo muito mais tempo do que qualquer pessoa poderia razoavelmente esperar”.
    • A explicação da busca de texto completo foi um pouco mais engenhosa do que eu tinha imaginado. No começo achei que ele gerava UUIDs até aparecer um que correspondesse à direção da busca dos botões seguinte/anterior, mas na prática ele cria vários resultados possíveis e escolhe o melhor entre eles.
      Imaginei isso ao ver que, sempre que eu avançava e voltava nos resultados, aparecia um resultado diferente; fiquei curioso para saber quantos ele realmente gera.
    • A busca de texto completo parece, à primeira vista, pesquisar em ordem, mas na verdade não é assim, então é um pouco confuso. Mesmo depois de clicar em “next” algumas vezes e depois clicar em “prev” o mesmo número de vezes, você não necessariamente volta ao UUID original.
      Ainda assim, parece um truque bem legal.
    • O método de busca é muito parecido com uma abordagem comum para criar um corretor ortográfico ingênuo. Dada uma entrada, ele gera todas as correspondências possíveis que poderiam conter essa entrada.
      Em vez de pesquisar em um corpus, é como se você usasse a entrada para gerar um índice do corpus. Aqui é uma lista de UUIDs; num corretor ortográfico, é a lista de palavras de um dicionário.
  • Parece que algum hacker vazou todos os UUIDs.
    Preciso verificar se o meu UUID está na lista vazada.

    • É o maior hack desde o vazamento de todos os PINs de caixas eletrônicos: https://pastebin.com/SmJRB8eQ
    • Se você avisar o departamento de segurança sobre isso, com certeza eles vão correr atrás imediatamente.
    • Estou ansioso pelo serviço “havemyuuidsbeenpwned.com”.
    • 10b82756-f8b4-4fee-a508-adeadbeef5eb
      Não tem jeito, agora é hora de formatar.
    • Como o trabalho na minha empresa está nesse estado, simplesmente não tenho tempo para mitigar esse vazamento na segurança dos dados pessoais. Desisto oficialmente.
  • Muito útil. Vou consultar quando esquecer um UUID. Também uso sempre este site quando preciso lembrar minhas chaves privadas de Bitcoin: https://privatekeys.pw/keys/bitcoin/1

    • Chave aleatória: saldo 0
      Chave real: o saldo agora é 0
    • Eu não sabia que as pessoas criavam chaves BTC fracas por diversão. Algumas provavelmente também são usadas como armadilhas para atrair bots.
    • Com certeza deve haver gente procurando chaves privadas reais e potencialmente vazando-as.
    • Veja também: https://keys.lol/
  • Às vezes eu gero um UUID e, se não uso em lugar nenhum, fico meio culpado. Parece desperdício.

    • Você não é o único que se sente assim: https://wasteaguid.info/
    • Existem UUIDs em quantidade suficiente, então, ao não registrá-los em algum lugar, você na verdade está economizando um recurso mais escasso.
    • E quão culpado você se sente pelos UUIDs que nem chegaram a nascer porque você não os gerou?
    • Nos dados de clickstream da empresa há uma coluna event_uuid, que é uma combinação de UUID, inteiros grandes, números de conta e mais uns 10 identificadores.
      Quando você não sabe por qual coluna deve fazer o join, os joins ficam muito convenientes.
    • Uma vez usei SELECT TOP 1 ... ORDER BY NEWID() para escolher um registro em uma tabela com milhões de linhas.
      Milhões de UUIDs foram gerados, e um deles por acaso acabou sendo o menor valor, fazendo com que o registro associado fosse retornado. Um desperdício enorme.
  • Achei interessante a parte em que diz que “o navegador não queria renderizar uma janela com altura maior que um trilhão de trilhões de pixels, então foi preciso lidar manualmente com rolagem e renderização”. Quando você realmente tenta algo assim, é bem decepcionante, e não chega nem perto de um trilhão de pixels.
    Há 5 anos, quando eu trabalhava na Fastmail, um cliente que usava IE colocou cerca de 200 mil e-mails na caixa de entrada e a barra de rolagem quebrou; os limites que verifiquei na época foram estes, e acabei de reconfirmar alguns deles.
    O Firefox antes ignorava declarações interpretadas como valores maiores que 17.895.697 pixels. Agora ele faz clamp nesse ponto, mas há uma diferença de uns 3 pixels, então não fica imediatamente claro o que exatamente está acontecendo.
    O IE ignora declarações interpretadas como 10.737.418,23 pixels ou mais. O WebKit faz clamp em valores por volta de 2²⁵, ou seja, perto de 33.554.432 pixels.
    Nos testes antigos, o Chromium se comportava como o WebKit, mas agora faz clamp por volta de 22.360.882 pixels. Atualmente estou em um monitor com escala 1,5x, então 2²⁵ pode ter relação com pixels do dispositivo, embora eu ache que, quando testei pela primeira vez, estava em um monitor com escala 2x.
    Também escrevi algo mais detalhado, com links para o código-fonte relacionado: https://news.ycombinator.com/item?id=34299569

    • Gostei disso. Enquanto escrevia o texto, tentei encontrar uma lista relativamente atualizada das alturas máximas dos navegadores. Será que posso linkar este comentário em uma atualização?
      Também fico muito curioso para saber como esses números foram definidos e o que começaria a quebrar se não houvesse limite. Alguns comportamentos estranhos em torno de clientHeight talvez sejam uma pista.
    • Há limites parecidos para a largura dos elementos. Descobri isso recentemente ao tentar definir a largura como 45678910px: https://thewisenerd.com/works/45678910px.html
  • Quero anunciar o novo pacote npm get-uuid. Internamente, ele carrega everyuuid.com, escolhe um número de linha aleatório e retorna aquele UUID

    • Excelente ideia. Eu também vou criar um pacote npm que usa esse pacote para retornar um GUID removendo os - entre os números. Viva a reutilização de código
    • Eu gostaria que a compatibilidade da API da biblioteca fosse quebrada no máximo 5 vezes por mês. Mais do que isso é demais
      E também aguarde o dia em que eu vou perceber que seu pacote não faz exatamente o que eu quero e vou fazer um fork
    • Seria ainda melhor se a IA escolhesse UUIDs esteticamente agradáveis. Posso abrir um PR se quiser
    • Dá para adicionar também uma função que verifica se um UUID existe?
  • Me lembrou https://libraryofbabel.info/. Parece que está fora do ar agora, então dá para tentar o Archive: https://web.archive.org/web/20241112121646/https://libraryof...
    É uma implementação divertida inspirada no conto https://en.wikipedia.org/wiki/The_Library_of_Babel, e diz que “contém todas as páginas de 3.200 caracteres atualmente possíveis”. No entanto, como o conjunto de caracteres é limitado e não há hífens, esses UUIDs não podem ser encontrados

    • Também existe uma variação chamada A Short Stay in Hell (2009), de Steven L. Peck
      Se você entende números muito, muito grandes, é uma leitura divertida e assustadora
  • Achei que seria uma lista de todos os domínios .com que são UUIDs válidos. Fiquei curioso para saber quantos domínios desses realmente existem
    Atualização: já compartilharam isso em outro comentário: https://news.ycombinator.com/item?id=42342653

  • A tecnologia de compressão evoluiu tanto que agora dá para navegar por uma página da web com mais de 340 undecilhões de bytes
    Vivemos mesmo em uma época maravilhosa

    • Quase com certeza isso estabeleceu um novo recorde de pontuação Weissman
    • Nada demais. Há alguns anos, no Cookie Clicker, minhas padarias produziam na casa dos undecilhões sem problema
  • É impressionante ver um site que carrega de uma vez conteúdo suficiente para passar de uma tela, mas não mostra uma animação de carregamento de vários segundos ao rolar
    Fico imaginando se os desenvolvedores modernos de aplicações web vão conseguir aproveitar essa tecnologia de alguma forma

    • Concordo totalmente. Eu também pensei imediatamente: “uau, é rápido, suave e responsivo!”
      O hardware de computador está 1000 vezes mais rápido do que em 1995, 30 anos atrás, mas o software ficou tão inchado que ainda é mais lento; isso é absurdo
      Vídeo relacionado: “Will Software Stop Getting Slower?” Jonathan Blow
      https://www.youtube.com/watch?v=4ka549NNdDk