Carte de GitHub
(github.com/anvaka)-
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.forcelayouta é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,
maplibrea été utilisé pour convertir les données au format GeoJSON, puistippecanoea 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
adans la boîte de recherche, tous les dépôts commençant parasont trouvés et affichés côté client à l’aide d’un fuzzy matcher.
- 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
-
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
Commentaire Hacker News
Certains se disent surpris que Rustland soit petit et ne représente qu’une semaine de Clouderra
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
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
Le choix du nom original "Homelabia" est amusant
Il y a eu une discussion précédente
Certains se demandent comment les liens entre les dépôts sont déterminés