4 ポイント 投稿者 GN⁺ 2024-12-16 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-12-16
Hacker Newsの意見
  • Rustland が小さく、Clouderra の 1 週間分にすぎないことに驚いたという意見がある

    • Bevy と Veloren が Rustland にあるのが興味深い
    • Rust コミュニティはゲーム開発コミュニティよりも多くスターを付けるようだ
    • Rust エコシステムはまだ小さく、多くの人が Rust で何かをしているという感じがある
  • 特定のプロジェクトを検索機能なしで地図だけを頼りに見つけるミニゲームが面白い

  • torvalds/linux が Fronterra にあり、JS プロジェクトや awesome-X リスト、フロントエンドのチェックリストの横にあるのが興味深い

    • カーネルハッカーがフロントエンド好きなのか、あるいは GitHub プロジェクトにスターを付ける人たちがコードを書く人たちとあまり重なっていないのか気になる
  • Among Us セクションの名前が "Sussex" なのが笑えた

  • 国・地図のメタファーが最善の選択なのかについては戸惑いがある

    • 名前が明確でなく、拡大しないと理解できないことが多い
    • 階層的クラスタリングによって、(スーパー)クラスター間の平均的なつながりを線で示すほうが、より興味深いかもしれない
    • 各クラスターについて、より説明的で忠実な LLM 生成ラベルを使うのがよいかもしれない
  • "Homelabia" という独特な名前の付け方が面白い

  • 以前の議論があった

    • 2023 年の議論へのリンクを提示
  • リポジトリ間のつながりがどのように決まるのか気になる

    • 自分のリポジトリを確認したところ、つながりに関する参照が双方向には見えない