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
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
Ficou impressionado com a demo técnica de rodar Bad Apple no NES. Fornece um link mostrando Bad Apple rodando em um Everdrive
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