Mapa do GitHub
(github.com/anvaka)-
Mapa de projetos do GitHub
-
Um mapa que visualiza mais de 400.000 projetos do GitHub. Cada ponto representa um projeto, e projetos com muitos stargazers em comum ficam posicionados mais próximos entre si.
-
Como foi feito?
-
Na primeira etapa, foram usados conjuntos de dados públicos de eventos de atividade do GitHub para coletar dados sobre quais usuários deram estrela a quais repositórios. Considerando os eventos de janeiro de 2020 a março de 2023, foram obtidos mais de 350 milhões de dados de estrelas.
-
Na segunda etapa, foi calculada a similaridade de Jaccard exata entre cada repositório. Isso era difícil de processar em um computador pessoal com 24GB de RAM, mas foi concluído em poucas horas usando uma instância AWS EC2 com 512GB de RAM.
-
Na terceira etapa, alguns algoritmos de clusterização foram usados para agrupar os repositórios. A preferência foi pelo clustering de Leiden, gerando mais de 1.000 clusters.
-
Na quarta etapa,
ngraph.forcelayoutfoi usado para calcular o layout dos nós dentro dos clusters, e uma configuração separada foi usada para obter o layout global dos clusters. -
Na quinta etapa, o mapa foi renderizado. Diferentemente de projetos anteriores, foi usado
maplibre, os dados foram convertidos para o formato GeoJSON, e os tiles foram gerados comtippecanoepara montar a experiência de navegação.
-
-
Nomes dos países
- Muitos rótulos de países foram gerados com a ajuda do ChatGPT. Se houver algo incorreto, ficarei grato se você clicar com o botão direito para corrigir e enviar um pull request.
-
Geocodificação?
- Para implementar a caixa de busca, todos os repositórios foram simplesmente despejados e indexados pela primeira letra (ou pelo nome do autor). Se você digitar 'a' na caixa de busca, todos os repositórios que começam com 'a' serão encontrados e mostrados no cliente com um fuzzy matcher.
-
Design
- Gosto mais da representação dos dados deste projeto do que do design do mapa. Se você tiver experiência com design de mapas ou uma visão de design incrível, não hesite em compartilhar. Estou procurando um estilo que combine com os dados.
-
Apoio
-
Se você acha este projeto útil, participe do grupo de apoio. Se precisar de ajuda com o projeto ou tiver alguma dúvida, abra uma issue ou entre em contato pelo Twitter.
-
Agradeço aos amigos e apoiadores que ajudaram a iniciar o projeto: Ryan, Andrey, Alex, Dmytro. Vocês são incríveis!
-
Agradeço à minha querida filha Louise por criar o logotipo deste projeto. Amo você!
-
Gratidão infinita a todos os contribuidores de código aberto que tornaram este projeto possível. Estou sobre os ombros de gigantes.
-
-
Licença
- Este repositório é disponibilizado sob a licença MIT. Se você usar os dados em seu próprio trabalho, por favor atribua a fonte a este projeto.
1 comentários
Comentários no Hacker News
Há comentários surpresos com o fato de Rustland ser pequeno e equivaler a apenas uma semana de Clouderra
É divertido como um minijogo encontrar projetos específicos apenas pelo mapa, sem função de busca
É interessante que torvalds/linux esteja em Fronterra, ao lado de projetos JS, listas awesome-X e checklists de frontend
Foi engraçado a seção de Among Us se chamar "Sussex"
Há certa confusão sobre se a metáfora de países/mapa é realmente a melhor escolha
Foi divertido ver a escolha inusitada do nome "Homelabia"
Houve discussões anteriores
Há curiosidade sobre como as conexões entre os repositórios são determinadas