GitHub-Karte
(github.com/anvaka)-
GitHub-Projektkarte
-
Eine Karte, die mehr als 400.000 GitHub-Projekte visualisiert. Jeder Punkt steht für ein einzelnes Projekt; Projekte mit vielen gemeinsamen Stargazern liegen näher beieinander.
-
Wie wurde sie erstellt?
-
Im ersten Schritt wurden mithilfe eines öffentlichen Datensatzes von GitHub-Aktivitätsereignissen Daten darüber gesammelt, welche Nutzer welchen Repositories Sterne gegeben haben. Unter Berücksichtigung der Ereignisse von Januar 2020 bis März 2023 wurden mehr als 350 Millionen Stern-Datenpunkte gewonnen.
-
Im zweiten Schritt wurde die exakte Jaccard-Ähnlichkeit zwischen den einzelnen Repositories berechnet. Auf einem PC mit 24 GB RAM war das kaum zu verarbeiten, doch mit einer AWS-EC2-Instanz mit 512 GB RAM ließ es sich in wenigen Stunden erledigen.
-
Im dritten Schritt wurden mehrere Clustering-Algorithmen verwendet, um die Repositories zu gruppieren. Bevorzugt wurde Leiden-Clustering, wodurch mehr als 1000 Cluster entstanden.
-
Im vierten Schritt wurde mit
ngraph.forcelayoutdas Layout der Knoten innerhalb der Cluster berechnet; mit einer separaten Konfiguration wurde zusätzlich das globale Layout der Cluster erzeugt. -
Im fünften Schritt wurde die Karte gerendert. Anders als bei früheren Projekten wurde
maplibreverwendet, die Daten in das GeoJSON-Format umgewandelt und mittippecanoeKacheln erzeugt, um die Browser-Umgebung aufzubauen.
-
-
Ländernamen
- Viele Länderbeschriftungen wurden mit Hilfe von ChatGPT erzeugt. Falls etwas falsch ist, wäre ich dankbar, wenn du per Rechtsklick eine Korrektur vornimmst und einen Pull Request schickst.
-
Geocoding?
- Um das Suchfeld zu implementieren, wurden einfach alle Repositories gedumpt und nach dem ersten Buchstaben (oder dem Namen des Autors) indexiert. Wenn man im Suchfeld
aeingibt, werden alle Repositories gefunden, die mitabeginnen, und clientseitig mit einem Fuzzy Matcher angezeigt.
- Um das Suchfeld zu implementieren, wurden einfach alle Repositories gedumpt und nach dem ersten Buchstaben (oder dem Namen des Autors) indexiert. Wenn man im Suchfeld
-
Design
- Bei diesem Projekt ist mir die Darstellung der Daten wichtiger als das Kartendesign. Wenn du Erfahrung mit Kartendesign hast oder eine starke gestalterische Vision mitbringst, teile sie gern. Es wird nach einem Stil gesucht, der zu den Daten passt.
-
Unterstützung
-
Wenn du dieses Projekt nützlich findest, tritt bitte der Support-Gruppe bei. Wenn du Hilfe zum Projekt brauchst oder Fragen hast, eröffne ein Issue oder kontaktiere mich auf Twitter.
-
Vielen Dank an die Freunde und Unterstützer, die beim Start des Projekts geholfen haben: Ryan, Andrey, Alex, Dmytro. Ihr seid großartig!
-
Danke an meine geliebte Tochter Louise, die das Logo dieses Projekts erstellt hat. Ich hab dich lieb!
-
Unendlicher Dank an alle Open-Source-Mitwirkenden, die dieses Projekt möglich gemacht haben. Ich stehe auf den Schultern von Giganten.
-
-
Lizenz
- Dieses Repository wird unter der MIT-Lizenz veröffentlicht. Wenn du die Daten in deiner eigenen Arbeit verwendest, gib bitte dieses Projekt als Quelle an.
1 Kommentare
Hacker-News-Kommentare
Es gibt die Meinung, dass es überraschend ist, dass Rustland klein ist und nur einer Woche von Clouderra entspricht
Es macht Spaß als Minispiel, bestimmte Projekte allein über die Karte und ohne Suchfunktion zu finden
Es ist interessant, dass torvalds/linux in Fronterra liegt, neben JS-Projekten, awesome-X-Listen und Frontend-Checklisten
Der Name des Among-Us-Abschnitts, "Sussex", war lustig
Es herrscht Verwirrung darüber, ob die Metapher mit Ländern/Karten wirklich die beste Wahl ist
Die ungewöhnliche Namenswahl "Homelabia" ist amüsant
Es gab eine frühere Diskussion
Man fragt sich, wie die Verbindungen zwischen den Repositories bestimmt werden