5 pontos por GN⁺ 2025-05-02 | 1 comentários | Compartilhar no WhatsApp
  • O autor baixou todos os dados do Hacker News e os analisou com DuckDB
  • Todo o conjunto de itens (stories + comentários), totalizando 20GB, foi salvo em arquivos JSON, com uma estrutura que também permite atualizações futuras
  • Usando DuckDB, ele fez uma análise de séries temporais semanais da proporção de menções a "Python", "JavaScript", "Ruby", "Rust" e outras linguagens
  • Usou um LLM para escrever SQL, o que permitiu até iniciantes realizarem análises complexas com facilidade
  • O projeto pode ser visto no site público hn.unlurker.com, e qualquer pessoa pode reutilizar esses dados como base para novas análises

Raspando todos os dados do Hacker News

  • Ao criar o hn.unlurker.com, o autor desenvolveu seu próprio cliente da API do HN em Go, começando como um projeto pessoal para usar recursos modernos da linguagem e linters
  • Implementou o comando scan para baixar sequencialmente todos os itens do Hacker News a partir do item 0 (stories e comentários na HN API)
  • Embora o download tenha sido interrompido várias vezes, a estrutura permitia reinício, e em poucas horas ele obteve cerca de 20GiB de arquivos JSON

Análise temporal de texto com DuckDB

  • Enquanto fazia buscas simples de padrões com grep, ele resolveu experimentar o DuckDB como ferramenta de análise, um banco de dados rápido otimizado para análise local em arquivos únicos de pequeno porte
  • Carregou os arquivos JSON em tabelas e calculou semanalmente a proporção das linguagens mencionadas nos textos dos itens
  • Escreveu SQL para visualizar, com média móvel de 12 semanas, a proporção de itens contendo palavras-chave como Python, JavaScript, Java, Ruby e Rust
  • Graças à nova interface do DuckDB, o uso ficou mais fácil, e com a ajuda de um LLM também foi simples escrever as consultas SQL

Resultados e próximos planos

  • O DuckDB ofereceu excelente desempenho e usabilidade para analisar dados nessa escala
  • Depois de concluir a coleta de dados, o autor comentou, meio em tom de piada e meio a sério, que "vai treinar centenas de bots baseados em LLM para substituir o Hacker News"
  • No entanto, o objetivo real de coleta e análise de dados foi alcançado, e o projeto se encerra por aqui
  • A partir daqui, as próximas análises ficam por conta de quem quiser extrair novos insights com base nesses dados

Links de referência

1 comentários

 
GN⁺ 2025-05-02
Comentários no Hacker News
  • Há dois bancos de dados que atualizam a tabela do Hacker News e permitem análise sem precisar baixar tudo

    • O BigQuery exige uma conta no Google Cloud, e a consulta parece ficar dentro da camada gratuita
    • O ClickHouse permite executar consultas diretamente no navegador, sem cadastro
  • No passado, foi feito algo parecido com a conta @fesshole no Twitter/Bluesky

    • Todo o arquivo foi baixado e o modelo foi ajustado finamente para gerar confissões mais espirituosas
    • Mas no fim perceberam que tinham ensinado conteúdo inadequado a uma máquina inocente
  • Havia um arquivo JSON de 20 GiB contendo todo o conteúdo do Hacker News

    • Foi surpreendente que um site só de texto chegasse a esse volume
    • Em 18 anos, mais de 20 bilhões de bytes de texto foram publicados
  • Consultas por Java acabam incluindo todas as ocorrências de JavaScript, então Java fica super-representado

  • Fica a dúvida sobre qual é a netiqueta ao baixar todo o Hacker News

    • Se seria preciso falar com o Dang antes de sobrecarregar os servidores, ou se dá para assumir que grandes empresas de tecnologia já fizeram isso várias vezes
  • Há a previsão de que muitas APIs no futuro ofereçam a opção de retornar arquivos duckdb

    • Se de qualquer forma o JSON vai ser carregado em um banco de dados, é mais eficiente receber o banco como resposta
  • Alguém fez um trabalho semelhante

    • Usou o dataset do BigQuery para exportar os dados em parquet, baixá-los e consultá-los com duckdb
  • Depois de baixar localmente todo o conteúdo do Hacker News, seria possível treinar um bot baseado em LLM e operá-lo como contribuidor

    • Isso foi dito como piada, mas existe o receio de que alguém tente um dia
  • Houve um pedido para não usar gráficos cumulativos

    • Eles têm alto potencial de distorcer a percepção do leitor
    • É difícil julgar a altura de pontos específicos dos dados e isso pode sugerir dependências
  • No passado, alguém escreveu um dump de dados do Hacker News

    • Como itens mais recentes continuam sendo atualizados ao longo do tempo, seria interessante implementar algo que faça itens baixados mais recentemente parecerem mais antigos do que itens baixados há mais tempo