GitHubマップ
(github.com/anvaka)-
GitHubプロジェクトマップ
-
40万件を超えるGitHubプロジェクトを可視化したマップ。各点は1つのプロジェクトを表しており、共通のstargazerが多いプロジェクトほど互いに近くに配置される。
-
どのように作られたのか?
-
第1段階では、GitHubアクティビティイベントの公開データセットを使って、どのユーザーがどのリポジトリにスターを付けたかのデータを収集した。2020年1月から2023年3月までのイベントを対象に、3億5千万件を超えるスターデータを取得した。
-
第2段階では、各リポジトリ間の正確なJaccard類似度を計算した。24GB RAMの個人用コンピュータでは処理が難しかったが、512GB RAMのAWS EC2インスタンスを使って数時間で処理した。
-
第3段階では、いくつかのクラスタリングアルゴリズムを使ってリポジトリをグループ化した。Leidenクラスタリングを最も好み、1000個を超えるクラスターを生成した。
-
第4段階では、ngraph.forcelayoutを使ってクラスター内ノードのレイアウトを計算し、別設定でクラスターのグローバルレイアウトを得た。
-
第5段階では、マップをレンダリングした。以前のプロジェクトとは異なり、maplibreを使ってデータをGeoJSON形式に変換し、tippecanoeでタイルを生成してブラウジング環境を構成した。
-
-
国名
- 多くの国名ラベルはChatGPTの助けを借りて生成された。誤りがあれば、右クリックして修正し、プルリクエストを送ってもらえるとありがたい。
-
ジオコーディング?
- 検索ボックスを実装するため、すべてのリポジトリを単純にダンプし、先頭文字(または作者名)でインデックス化した。検索ボックスに
aを入力すると、aで始まるすべてのリポジトリを見つけて、クライアント側でファジーマッチャーにより表示する。
- 検索ボックスを実装するため、すべてのリポジトリを単純にダンプし、先頭文字(または作者名)でインデックス化した。検索ボックスに
-
デザイン
- このプロジェクトでは、地図のデザインよりもデータ表現のほうを重視している。地図デザインの経験がある人や、優れたデザインビジョンを持つ人がいれば、ぜひ共有してほしい。データに合うスタイルを探している。
-
サポート
-
このプロジェクトが有用だと思うなら、サポートグループに参加してほしい。プロジェクトについて助けが必要だったり質問があれば、Issueを開くかTwitterで連絡してほしい。
-
プロジェクトの立ち上げを手伝ってくれた友人と支援者に感謝する: Ryan, Andrey, Alex, Dmytro。あなたたちは素晴らしい!
-
このプロジェクトのロゴを作ってくれた愛する娘 Louise に感謝する。愛している!
-
このプロジェクトを可能にした、すべてのオープンソース貢献者に限りない感謝を。巨人の肩の上に立っている。
-
-
ライセンス
- このリポジトリはMITライセンスで公開されている。データを自分の作業に使う場合は、このプロジェクトへの出典表記をお願いしたい。
1件のコメント
Hacker Newsの意見
Rustland が小さく、Clouderra の 1 週間分にすぎないことに驚いたという意見がある
特定のプロジェクトを検索機能なしで地図だけを頼りに見つけるミニゲームが面白い
torvalds/linux が Fronterra にあり、JS プロジェクトや awesome-X リスト、フロントエンドのチェックリストの横にあるのが興味深い
Among Us セクションの名前が "Sussex" なのが笑えた
国・地図のメタファーが最善の選択なのかについては戸惑いがある
"Homelabia" という独特な名前の付け方が面白い
以前の議論があった
リポジトリ間のつながりがどのように決まるのか気になる