4 điểm bởi GN⁺ 2024-12-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bản đồ dự án GitHub

  • Đây là bản đồ trực quan hóa hơn 400.000 dự án GitHub. Mỗi điểm đại diện cho một dự án, và các dự án có nhiều người gắn sao chung sẽ nằm gần nhau hơn.

  • Được tạo ra như thế nào?

    • Ở bước đầu tiên, dữ liệu được thu thập về việc người dùng nào đã gắn sao cho kho lưu trữ nào bằng cách sử dụng bộ dữ liệu công khai của các sự kiện hoạt động trên GitHub. Xét các sự kiện từ tháng 1 năm 2020 đến tháng 3 năm 2023, đã thu được hơn 350 triệu dữ liệu gắn sao.

    • Ở bước thứ hai, độ tương đồng Jaccard chính xác giữa từng kho lưu trữ được tính toán. Việc này khó xử lý trên máy tính cá nhân với 24GB RAM, nhưng đã được xử lý trong vài giờ bằng cách dùng một phiên bản AWS EC2 với 512GB RAM.

    • Ở bước thứ ba, một số thuật toán phân cụm được sử dụng để nhóm các kho lưu trữ. Leiden clustering được ưa chuộng nhất và đã tạo ra hơn 1.000 cụm.

    • Ở bước thứ tư, ngraph.forcelayout được dùng để tính bố cục các nút trong từng cụm, đồng thời dùng cấu hình riêng để có được bố cục toàn cục của các cụm.

    • Ở bước thứ năm, bản đồ được kết xuất. Khác với các dự án trước, dữ liệu được chuyển sang định dạng GeoJSON bằng maplibre, và các tile được tạo bằng tippecanoe để thiết lập môi trường duyệt.

  • Tên quốc gia

    • Nhiều nhãn quốc gia được tạo ra với sự hỗ trợ của ChatGPT. Nếu có chỗ nào sai, rất mong bạn nhấp chuột phải để sửa và gửi pull request.
  • Geocoding?

    • Để triển khai ô tìm kiếm, tất cả kho lưu trữ được dump đơn giản và lập chỉ mục theo chữ cái đầu tiên (hoặc tên tác giả). Nếu nhập 'a' vào ô tìm kiếm, hệ thống sẽ tìm tất cả kho lưu trữ bắt đầu bằng 'a' và hiển thị chúng ở phía client bằng fuzzy matcher.
  • Thiết kế

    • Tác giả đánh giá cao cách biểu diễn dữ liệu của dự án này hơn là thiết kế bản đồ. Nếu bạn có kinh nghiệm về thiết kế bản đồ hoặc có tầm nhìn thiết kế thú vị, đừng ngần ngại chia sẻ. Dự án đang tìm kiếm một phong cách phù hợp với dữ liệu.
  • Hỗ trợ

    • Nếu bạn thấy dự án này hữu ích, hãy tham gia nhóm hỗ trợ. Nếu cần giúp đỡ về dự án hoặc có câu hỏi, hãy mở issue hoặc liên hệ qua Twitter.

    • Xin cảm ơn những người bạn và những người ủng hộ đã giúp bắt đầu dự án: Ryan, Andrey, Alex, Dmytro. Các bạn thật tuyệt vời!

    • Xin cảm ơn cô con gái yêu quý Louise đã tạo logo cho dự án này. Yêu con!

    • Xin gửi lời cảm ơn vô hạn tới tất cả những người đóng góp mã nguồn mở đã làm nên dự án này. Đây là thành quả được xây dựng trên vai những người khổng lồ.

  • Giấy phép

    • Kho lưu trữ này được phát hành theo giấy phép MIT. Nếu bạn sử dụng dữ liệu cho công việc của mình, vui lòng ghi nguồn cho dự án này.

1 bình luận

 
GN⁺ 2024-12-16
Ý kiến trên Hacker News
  • Có ý kiến cho rằng thật bất ngờ khi Rustland nhỏ bé và chỉ bằng một tuần của Clouderra

    • Thật thú vị khi Bevy và Veloren nằm trong Rustland
    • Có vẻ như cộng đồng Rust dành nhiều sao hơn cộng đồng phát triển game
    • Hệ sinh thái Rust vẫn còn nhỏ và tạo cảm giác có rất nhiều người đang làm gì đó với Rust
  • Trò chơi nhỏ tìm một dự án cụ thể chỉ bằng bản đồ, không có chức năng tìm kiếm, khá vui

  • Thật thú vị khi torvalds/linux nằm ở Fronterra, cạnh các dự án JS, danh sách awesome-X và checklist frontend

    • Tò mò không biết các kernel hacker thích frontend, hay là những người gắn sao cho dự án GitHub không trùng lặp nhiều với người viết mã
  • Việc khu vực Among Us được đặt tên là "Sussex" khá buồn cười

  • Có sự bối rối về việc liệu ẩn dụ quốc gia/bản đồ có phải là lựa chọn tốt nhất hay không

    • Tên không đủ rõ ràng nên nhiều trường hợp phải phóng to mới hiểu được
    • Có thể sẽ thú vị hơn nếu dùng hierarchical clustering để hiển thị mức độ kết nối trung bình giữa các (siêu) cụm bằng các đường nối
    • Có thể nên dùng các nhãn do LLM tạo ra mang tính mô tả và sát thực hơn cho từng cụm
  • Cách chọn cái tên độc đáo "Homelabia" khá vui

  • Đã có thảo luận trước đó

    • Có cung cấp liên kết tới cuộc thảo luận năm 2023
  • Tò mò cách các kết nối giữa các kho lưu trữ được xác định

    • Khi kiểm tra kho của mình, các tham chiếu về kết nối không xuất hiện theo cả hai chiều