4P by neo 12일전 | favorite | 댓글 1개
  • GitHub 프로젝트 지도

  • 400,000개 이상의 GitHub 프로젝트를 시각화한 지도임. 각 점은 하나의 프로젝트를 나타내며, 공통의 stargazer가 많은 프로젝트일수록 서로 가까이 위치함.

  • 어떻게 만들어졌는가?

    • 첫 번째 단계에서는 GitHub 활동 이벤트의 공개 데이터 세트를 사용하여 어떤 사용자가 어떤 저장소에 별을 주었는지 데이터를 수집함. 2020년 1월부터 2023년 3월까지의 이벤트를 고려하여 3억 5천만 개 이상의 별 데이터를 얻음.

    • 두 번째 단계에서는 각 저장소 간의 정확한 Jaccard 유사도를 계산함. 24GB RAM의 개인 컴퓨터로는 처리하기 어려웠으나, 512GB RAM의 AWS EC2 인스턴스를 사용하여 몇 시간 만에 처리함.

    • 세 번째 단계에서는 몇 가지 클러스터링 알고리듬을 사용하여 저장소를 그룹화함. Leiden 클러스터링을 가장 선호하여 1000개 이상의 클러스터를 생성함.

    • 네 번째 단계에서는 ngraph.forcelayout을 사용하여 클러스터 내 노드의 레이아웃을 계산하고, 별도의 설정으로 클러스터의 전역 레이아웃을 얻음.

    • 다섯 번째 단계에서는 지도를 렌더링함. 이전 프로젝트와 달리 maplibre를 사용하여 데이터를 GeoJSON 형식으로 변환하고, tippecanoe로 타일을 생성하여 브라우징 환경을 구성함.

  • 국가 이름

    • 많은 국가 레이블은 ChatGPT의 도움을 받아 생성됨. 잘못된 부분이 있다면, 오른쪽 클릭하여 수정하고 풀 리퀘스트를 보내주면 감사하겠음.
  • 지오코딩?

    • 검색 상자를 구현하기 위해 모든 저장소를 단순히 덤프하여 첫 글자(또는 작성자의 이름)로 인덱싱함. 검색 상자에 'a'를 입력하면 'a'로 시작하는 모든 저장소를 찾아 클라이언트에서 퍼지 매처로 보여줌.
  • 디자인

    • 이 프로젝트의 데이터 표현을 지도 디자인보다 더 선호함. 지도 디자인에 경험이 있거나 멋진 디자인 비전을 가진 사람이라면 주저하지 말고 공유해주길 바람. 데이터에 맞는 스타일을 찾고 있음.
  • 지원

    • 이 프로젝트가 유용하다고 생각되면 지원 그룹에 참여해주길 바람. 프로젝트에 대한 도움이 필요하거나 질문이 있다면 이슈를 열거나 트위터로 연락해주길 바람.

    • 프로젝트를 시작하는 데 도움을 준 친구들과 지지자들에게 감사함: Ryan, Andrey, Alex, Dmytro. 당신들은 대단함!

    • 이 프로젝트의 로고를 만들어 준 사랑하는 딸 Louise에게 감사함. 사랑함!

    • 이 프로젝트를 가능하게 한 모든 오픈 소스 기여자들에게 무한한 감사함. 거인의 어깨 위에 서 있음.

  • 라이선스

    • 이 저장소는 MIT 라이선스로 공개됨. 데이터를 자신의 작업에 사용할 경우, 이 프로젝트에 대한 출처를 표기해주길 바람.
Hacker News 의견
  • Rustland가 작고 Clouderra의 한 주에 불과한 것에 놀라움을 느끼는 의견이 있음

    • Bevy와 Veloren이 Rustland에 있는 것이 흥미로움
    • Rust 커뮤니티가 게임 개발 커뮤니티보다 더 많은 별을 주는 것 같음
    • Rust 생태계가 아직 작고 많은 사람들이 Rust로 무언가를 하고 있는 느낌임
  • 특정 프로젝트를 검색 기능 없이 지도만으로 찾는 미니게임이 재미있음

  • torvalds/linux가 Fronterra에 있으며, JS 프로젝트, awesome-X 리스트, 프론트엔드 체크리스트 옆에 있는 것이 흥미로움

    • 커널 해커들이 프론트엔드를 좋아하는 것인지, 아니면 Github 프로젝트에 별을 주는 사람들이 코드 작성자와 많이 겹치지 않는 것인지 궁금함
  • Among Us 섹션의 이름이 "Sussex"인 것이 웃겼음

  • 국가/지도 은유가 최선의 선택인지에 대해 혼란스러움

    • 이름이 명확하지 않아 확대해야 이해할 수 있는 경우가 많음
    • 계층적 클러스터링을 통해 (슈퍼)클러스터 간의 평균 연결성을 선으로 보여주는 것이 더 흥미로울 수 있음
    • 각 클러스터에 대해 더 설명적이고 충실한 LLM 생성 레이블을 사용하는 것이 좋을 수 있음
  • "Homelabia"라는 독특한 이름 선택이 재미있음

  • 이전 논의가 있었음

    • 2023년의 논의 링크 제공
  • 저장소 간의 연결이 어떻게 결정되는지 궁금함

    • 자신의 저장소를 확인했을 때, 연결에 대한 참조가 양방향으로 보이지 않음