4 points par GN⁺ 2024-12-16 | 1 commentaires | Partager sur WhatsApp
  • Carte des projets GitHub

  • Il s’agit d’une carte visualisant plus de 400 000 projets GitHub. Chaque point représente un projet, et plus deux projets ont de stargazers en commun, plus ils sont proches l’un de l’autre.

  • Comment cela a-t-il été réalisé ?

    • Lors de la première étape, les données ont été collectées à partir du jeu de données public des événements d’activité GitHub afin de savoir quels utilisateurs avaient attribué une étoile à quels dépôts. En prenant en compte les événements de janvier 2020 à mars 2023, plus de 350 millions de données d’étoiles ont été obtenues.

    • Lors de la deuxième étape, la similarité de Jaccard exacte a été calculée entre chaque dépôt. Cela était difficile à traiter sur un ordinateur personnel avec 24 Go de RAM, mais a pu être exécuté en quelques heures à l’aide d’une instance AWS EC2 disposant de 512 Go de RAM.

    • Lors de la troisième étape, plusieurs algorithmes de clustering ont été utilisés pour regrouper les dépôts. Le clustering de Leiden a été préféré, ce qui a permis de créer plus de 1 000 clusters.

    • Lors de la quatrième étape, ngraph.forcelayout a été utilisé pour calculer la disposition des nœuds à l’intérieur des clusters, puis une configuration distincte a servi à obtenir la disposition globale des clusters.

    • Lors de la cinquième étape, la carte a été rendue. Contrairement au projet précédent, maplibre a été utilisé pour convertir les données au format GeoJSON, puis tippecanoe a servi à générer les tuiles afin de mettre en place l’environnement de navigation.

  • Noms des pays

    • De nombreux libellés de pays ont été générés avec l’aide de ChatGPT. S’il y a des erreurs, un clic droit pour les corriger puis l’envoi d’une pull request seraient grandement appréciés.
  • Géocodage ?

    • Pour implémenter la boîte de recherche, tous les dépôts ont simplement été exportés puis indexés par leur première lettre (ou par le nom de l’auteur). Si l’on saisit a dans la boîte de recherche, tous les dépôts commençant par a sont trouvés et affichés côté client à l’aide d’un fuzzy matcher.
  • Design

    • La représentation des données de ce projet est jugée plus importante que le design de la carte. Si vous avez de l’expérience en design cartographique ou une vision de design particulièrement intéressante, n’hésitez pas à la partager. Un style adapté aux données est recherché.
  • Support

    • Si vous trouvez ce projet utile, merci de rejoindre le groupe de soutien. Si vous avez besoin d’aide sur le projet ou si vous avez des questions, ouvrez une issue ou contactez-nous sur Twitter.

    • Merci aux amis et soutiens qui ont aidé à lancer le projet : Ryan, Andrey, Alex, Dmytro. Vous êtes formidables !

    • Merci à ma chère fille Louise d’avoir créé le logo du projet. Je t’aime !

    • Une gratitude infinie à tous les contributeurs open source qui ont rendu ce projet possible. Nous nous tenons sur les épaules de géants.

  • Licence

    • Ce dépôt est publié sous licence MIT. Si vous utilisez les données dans vos propres travaux, merci de citer ce projet comme source.

1 commentaires

 
GN⁺ 2024-12-16
Commentaire Hacker News
  • Certains se disent surpris que Rustland soit petit et ne représente qu’une semaine de Clouderra

    • Il est intéressant que Bevy et Veloren se trouvent dans Rustland
    • La communauté Rust semble attribuer plus d’étoiles que la communauté du développement de jeux
    • L’écosystème Rust est encore petit, et cela donne l’impression que beaucoup de gens font quelque chose avec Rust
  • Le mini-jeu consistant à retrouver un projet précis uniquement avec la carte, sans fonction de recherche, est amusant

  • Il est intéressant que torvalds/linux se trouve dans Fronterra, à côté de projets JS, de listes awesome-X et de checklists frontend

    • On se demande si les hackers du noyau aiment le frontend, ou si les personnes qui mettent des étoiles aux projets GitHub recoupent peu celles qui écrivent réellement le code
  • Le fait que la section Among Us s’appelle "Sussex" a fait rire certains

  • Certains s’interrogent sur le fait de savoir si la métaphore du pays / de la carte est le meilleur choix

    • Les noms ne sont souvent pas assez clairs, au point qu’il faut zoomer pour comprendre
    • Il pourrait être plus intéressant d’utiliser un clustering hiérarchique pour montrer, avec des lignes, la connectivité moyenne entre les (super)clusters
    • Il pourrait être préférable d’utiliser pour chaque cluster des libellés générés par LLM plus descriptifs et plus fidèles
  • Le choix du nom original "Homelabia" est amusant

  • Il y a eu une discussion précédente

    • Un lien vers une discussion de 2023 est fourni
  • Certains se demandent comment les liens entre les dépôts sont déterminés

    • En vérifiant son propre dépôt, on ne voit pas les références aux liens dans les deux sens