4 puntos por GN⁺ 2024-12-16 | 1 comentarios | Compartir por WhatsApp
  • Mapa de proyectos de GitHub

  • Es un mapa que visualiza más de 400,000 proyectos de GitHub. Cada punto representa un proyecto, y los proyectos con más stargazers en común se ubican más cerca entre sí.

  • ¿Cómo fue creado?

    • En la primera etapa, se usó el conjunto de datos públicos de eventos de actividad de GitHub para recopilar datos sobre qué usuarios dieron estrella a qué repositorios. Considerando los eventos desde enero de 2020 hasta marzo de 2023, se obtuvieron más de 350 millones de datos de estrellas.

    • En la segunda etapa, se calculó la similitud exacta de Jaccard entre cada repositorio. Era difícil procesarlo en una computadora personal con 24 GB de RAM, pero usando una instancia de AWS EC2 con 512 GB de RAM se procesó en pocas horas.

    • En la tercera etapa, se usaron varios algoritmos de clustering para agrupar los repositorios. Se prefirió especialmente el clustering de Leiden, con el que se generaron más de 1000 clústeres.

    • En la cuarta etapa, se usó ngraph.forcelayout para calcular el layout de los nodos dentro de los clústeres, y con una configuración aparte se obtuvo el layout global de los clústeres.

    • En la quinta etapa, se renderizó el mapa. A diferencia de proyectos anteriores, se usó maplibre para convertir los datos al formato GeoJSON, y con tippecanoe se generaron los tiles para construir la experiencia de navegación en el navegador.

  • Nombres de países

    • Muchas etiquetas de países fueron generadas con ayuda de ChatGPT. Si hay algo incorrecto, se agradecería que hicieran clic derecho para corregirlo y enviaran un pull request.
  • ¿Geocodificación?

    • Para implementar el cuadro de búsqueda, simplemente se volcó la información de todos los repositorios y se indexó por la primera letra (o por el nombre del autor). Si escribes 'a' en el cuadro de búsqueda, encuentra todos los repositorios que empiezan con 'a' y los muestra en el cliente con un fuzzy matcher.
  • Diseño

    • En este proyecto se prefiere más la representación de los datos que el diseño del mapa. Si tienes experiencia en diseño de mapas o una visión de diseño interesante, no dudes en compartirla. Se está buscando un estilo que se ajuste a los datos.
  • Apoyo

    • Si crees que este proyecto es útil, se agradecería que te unas al grupo de apoyo. Si necesitas ayuda con el proyecto o tienes preguntas, abre un issue o ponte en contacto por Twitter.

    • Gracias a los amigos y patrocinadores que ayudaron a iniciar el proyecto: Ryan, Andrey, Alex, Dmytro. ¡Son increíbles!

    • Gracias a la querida hija Louise por crear el logo de este proyecto. ¡Te quiero!

    • Un agradecimiento infinito a todos los contribuidores de código abierto que hicieron posible este proyecto. Está construido sobre los hombros de gigantes.

  • Licencia

    • Este repositorio se publica bajo la licencia MIT. Si usas los datos en tu propio trabajo, se agradecería que citaras este proyecto como fuente.

1 comentarios

 
GN⁺ 2024-12-16
Comentarios en Hacker News
  • Hay una opinión que expresa sorpresa de que Rustland sea pequeño y apenas equivalga a una semana de Clouderra

    • Es interesante que Bevy y Veloren estén en Rustland
    • Parece que la comunidad de Rust da más estrellas que la comunidad de desarrollo de videojuegos
    • Da la impresión de que el ecosistema de Rust aún es pequeño y que mucha gente está haciendo algo con Rust
  • Es divertido el minijuego de encontrar proyectos específicos solo con el mapa, sin función de búsqueda

  • Es interesante que torvalds/linux esté en Fronterra, junto a proyectos de JS, listas awesome-X y checklists de frontend

    • Da curiosidad si a los hackers del kernel les gusta el frontend, o si quienes dan estrellas a los proyectos de GitHub no se superponen mucho con quienes escriben el código
  • Dio risa que la sección de Among Us se llame "Sussex"

  • Hay confusión sobre si la metáfora de país/mapa es realmente la mejor opción

    • Muchas veces los nombres no son claros y hay que hacer zoom para entenderlos
    • Podría ser más interesante usar clustering jerárquico y mostrar con líneas la conectividad promedio entre (súper)clústeres
    • Podría ser mejor usar etiquetas generadas por LLM más descriptivas y fieles para cada clúster
  • Es divertida la elección del nombre tan peculiar "Homelabia"

  • Hubo una discusión anterior

    • Se proporciona un enlace a la discusión de 2023
  • Hay curiosidad por cómo se determinan las conexiones entre repositorios

    • Al revisar su propio repositorio, no aparecen referencias bidireccionales de esas conexiones