1 pontos por GN⁺ 2025-01-13 | 1 comentários | Compartilhar no WhatsApp

Reproduzindo Bad Apple no vim

  • O que é Bad Apple?

    • Bad Apple é um videoclipe visualmente marcante, inserido em vários lugares e usado como meme.
    • É visto como um meme semelhante a rodar DOOM em uma geladeira inteligente.
  • Obtendo os frames

    • Para obter os dados de cada frame de Bad Apple, foi clonado o repositório de Felixoofed e convertido em cerca de 6.500 PNGs.
    • Código em Python foi usado para converter cada PNG em um array 2D de 0s e 1s.
  • Desenhando no vim

    • É possível desenhar no vim inserindo imagens em uma grade de texto.
    • O recurso de highlighting do vim é usado para aplicar a mesma cor aos caracteres correspondentes.
    • Uma fonte quadrada é usada para implementar pixels quadrados.
  • Desenhando retângulos arbitrários

    • A função de busca do vim é usada para gerar padrões que correspondem a linhas e colunas específicas.
    • Vários padrões podem ser combinados com uma operação OR para desenhar vários retângulos de uma só vez.
  • Convertendo frames em retângulos

    • A grade 90x120 é decomposta em retângulos para gerar a string de busca.
    • Diferentes algoritmos são usados para escolher o padrão de busca ideal.
  • Executando no vim

    • Uma macro do vim é usada para reproduzir o vídeo.
    • A macro define o padrão de busca e vai para a próxima linha, permitindo repetição.
  • Finalizando

    • Este projeto foi concluído em apenas um dia e, com mais tempo investido, algumas melhorias poderiam ser consideradas.
    • O projeto foi apresentado na primeira semana no Recurse Center e recebeu uma reação positiva.
    • O código é complexo, mas, se houver interesse, pode ser conferido no GitHub.

1 comentários

 
GN⁺ 2025-01-13
Comentários do Hacker News
  • Reação bem-humorada sobre a confiança no aumento de desempenho de 1.000x do Nolen. Já usou táticas parecidas no passado, mas não todas no mesmo dia

    • Bad Matrix: como imprimir blocos no terminal
    • Animating Text Art in Javascript: como imprimir texto em uma grade fixa para criar efeito de animação
    • oxo: como imprimir um tabuleiro de jogo da velha no terminal e usar expressões regulares para verificar o resultado
    • Bad Apple é o mais impressionante
  • Ficou impressionado com a demo técnica de rodar Bad Apple no NES. Fornece um link mostrando Bad Apple rodando em um Everdrive

    • Com áudio, o tamanho dos dados é de cerca de 1 GB. Está rodando em um sistema em que jogos comuns têm apenas algumas centenas de KB
  • Explicação de como tornar uma macro do Vim "reproduzível" ao movê-la para a próxima linha. Fornece um comando para executar a macro uma linha por vez

  • Informação sobre as cortinas de luz Govee vendidas no mês passado. É possível enviar GIFs animados, e há planos de criar um GIF de "bad apple"

  • Opinião sobre o problema de minimização de retângulos. Explicação sobre um projeto em Vim em que sobreposição é permitida, diferente do problema discutido no StackOverflow

  • Opinião de que um gerador paralelo de soluções candidatas é uma boa ideia. Levou um tempo para perceber que não era necessário criar o algoritmo ótimo

  • Compartilha a experiência de ter assistido à Copa do Mundo de 2006 no trabalho acessando o servidor de casa via SSH e vendo pelo terminal. A largura de banda era insuficiente, então outras formas eram impossíveis

  • Reação positiva à ideia criativa. Os jogos que serviram de base também são bons, e os jogos bullet hell são hipnóticos

  • Pergunta sobre o tempo aproximado levado para concluir o trabalho

  • Como o autor admite, é Vim, mas não expressões regulares, e sim "busca por coordenadas de tela". É desenhar no Vim, não correspondência de padrões