4 คะแนน โดย GN⁺ 2024-12-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แผนที่โปรเจ็กต์ GitHub

  • เป็นแผนที่ที่ทำให้เห็นภาพของโปรเจ็กต์ GitHub มากกว่า 400,000 รายการ แต่ละจุดแทนหนึ่งโปรเจ็กต์ และโปรเจ็กต์ที่มีผู้กดดาวร่วมกันจำนวนมากจะอยู่ใกล้กันมากขึ้น

  • สร้างขึ้นอย่างไร?

    • ในขั้นตอนแรก ใช้ชุดข้อมูลสาธารณะของอีเวนต์กิจกรรมบน GitHub เพื่อรวบรวมข้อมูลว่าผู้ใช้คนใดกดดาวให้รีโพซิทอรีใดบ้าง โดยพิจารณาอีเวนต์ตั้งแต่มกราคม 2020 ถึงมีนาคม 2023 ทำให้ได้ข้อมูลดาวมากกว่า 350 ล้านรายการ

    • ในขั้นตอนที่สอง คำนวณค่า Jaccard similarity แบบตรงไปตรงมาระหว่างแต่ละรีโพซิทอรี การประมวลผลนี้ทำได้ยากบนคอมพิวเตอร์ส่วนตัวที่มี RAM 24GB แต่เมื่อใช้ AWS EC2 อินสแตนซ์ที่มี RAM 512GB ก็ประมวลผลเสร็จได้ภายในไม่กี่ชั่วโมง

    • ในขั้นตอนที่สาม ใช้อัลกอริทึมการจัดคลัสเตอร์หลายแบบเพื่อจัดกลุ่มรีโพซิทอรี โดยชอบใช้ Leiden clustering มากที่สุด และสร้างคลัสเตอร์ได้มากกว่า 1,000 กลุ่ม

    • ในขั้นตอนที่สี่ ใช้ ngraph.forcelayout เพื่อคำนวณเลย์เอาต์ของโหนดภายในคลัสเตอร์ และใช้การตั้งค่าแยกต่างหากเพื่อให้ได้เลย์เอาต์โดยรวมของคลัสเตอร์

    • ในขั้นตอนที่ห้า ทำการเรนเดอร์แผนที่ ต่างจากโปรเจ็กต์ก่อนหน้า โปรเจ็กต์นี้ใช้ maplibre แปลงข้อมูลเป็นรูปแบบ GeoJSON และใช้ tippecanoe เพื่อสร้างไทล์สำหรับสภาพแวดล้อมการท่องดูในเบราว์เซอร์

  • ชื่อประเทศ

    • ป้ายชื่อประเทศจำนวนมากถูกสร้างขึ้นโดยอาศัยความช่วยเหลือจาก ChatGPT หากมีส่วนใดผิดพลาด จะขอบคุณมากหากช่วยคลิกขวาเพื่อแก้ไขแล้วส่ง pull request มา
  • Geocoding?

    • เพื่อทำช่องค้นหา จึงดัมพ์รีโพซิทอรีทั้งหมดออกมาอย่างง่าย ๆ แล้วทำดัชนีตามตัวอักษรแรก (หรือชื่อผู้เขียน) เมื่อพิมพ์ 'a' ลงในช่องค้นหา ระบบจะค้นหารีโพซิทอรีทั้งหมดที่ขึ้นต้นด้วย 'a' และแสดงผลในฝั่งไคลเอนต์ด้วยตัวจับคู่แบบ fuzzy
  • ดีไซน์

    • ผู้เขียนชอบการนำเสนอข้อมูลของโปรเจ็กต์นี้มากกว่าดีไซน์ของแผนที่ หากคุณมีประสบการณ์ด้านการออกแบบแผนที่ หรือมีวิสัยทัศน์ด้านดีไซน์ที่ยอดเยี่ยม อย่าลังเลที่จะแชร์ กำลังมองหาสไตล์ที่เข้ากับข้อมูลนี้อยู่
  • การสนับสนุน

    • หากคิดว่าโปรเจ็กต์นี้มีประโยชน์ ขอเชิญเข้าร่วมกลุ่มสนับสนุน หากต้องการความช่วยเหลือเกี่ยวกับโปรเจ็กต์หรือมีคำถาม โปรดเปิด issue หรือติดต่อทาง Twitter

    • ขอบคุณเพื่อนและผู้สนับสนุนที่ช่วยให้เริ่มต้นโปรเจ็กต์นี้ได้: Ryan, Andrey, Alex, Dmytro พวกคุณยอดเยี่ยมมาก!

    • ขอบคุณ Louise ลูกสาวสุดที่รัก ที่ทำโลโก้ให้โปรเจ็กต์นี้ รักมาก!

    • ขอบคุณอย่างไม่มีที่สิ้นสุดต่อผู้มีส่วนร่วมโอเพนซอร์สทุกคนที่ทำให้โปรเจ็กต์นี้เป็นไปได้ ยืนอยู่บนไหล่ของยักษ์

  • ใบอนุญาต

    • รีโพซิทอรีนี้เผยแพร่ภายใต้ MIT License หากนำข้อมูลไปใช้ในงานของตนเอง โปรดให้เครดิตแก่โปรเจ็กต์นี้

1 ความคิดเห็น

 
GN⁺ 2024-12-16
ความเห็นจาก Hacker News
  • มีความเห็นว่ารู้สึกแปลกใจที่ Rustland มีขนาดเล็ก และมีขนาดเพียงประมาณหนึ่งสัปดาห์ของ Clouderra

    • น่าสนใจที่ Bevy และ Veloren อยู่ใน Rustland
    • ดูเหมือนว่าชุมชน Rust จะกดดาวมากกว่าชุมชนนักพัฒนาเกม
    • ให้ความรู้สึกว่าระบบนิเวศของ Rust ยังเล็ก และมีหลายคนกำลังทำอะไรบางอย่างด้วย Rust
  • มินิเกมที่ให้หาบางโปรเจ็กต์จากแผนที่อย่างเดียวโดยไม่มีฟังก์ชันค้นหานั้นสนุกดี

  • น่าสนใจที่ torvalds/linux อยู่ใน Fronterra และอยู่ข้าง ๆ โปรเจ็กต์ JS, รายการ awesome-X และเช็กลิสต์ฟรอนต์เอนด์

    • เลยสงสัยว่านักแฮ็กเคอร์เนลชอบฟรอนต์เอนด์กัน หรือจริง ๆ แล้วคนที่กดดาวโปรเจ็กต์บน Github อาจแทบไม่ทับซ้อนกับคนที่เขียนโค้ด
  • ขำดีที่ส่วนของ Among Us ใช้ชื่อว่า "Sussex"

  • รู้สึกไม่แน่ใจว่าการใช้อุปมาแบบประเทศ/แผนที่เป็นตัวเลือกที่ดีที่สุดหรือไม่

    • หลายครั้งชื่อไม่ชัดเจนจนต้องซูมเข้าไปถึงจะเข้าใจ
    • การใช้ hierarchical clustering เพื่อแสดงความเชื่อมโยงเฉลี่ยระหว่าง (ซูเปอร์)คลัสเตอร์ด้วยเส้น อาจน่าสนใจกว่า
    • อาจจะดีกว่าถ้าใช้ป้ายกำกับที่ LLM สร้างขึ้นซึ่งอธิบายได้ชัดเจนและตรงกับแต่ละคลัสเตอร์มากกว่า
  • การเลือกใช้ชื่อที่มีเอกลักษณ์อย่าง "Homelabia" นั้นสนุกดี

  • เคยมีการพูดคุยเรื่องนี้มาก่อน

    • มีการให้ลิงก์ไปยังวงสนทนาในปี 2023
  • สงสัยว่าการเชื่อมต่อระหว่างรีโพถูกกำหนดอย่างไร

    • พอตรวจดูรีโพของตัวเองแล้ว อ้างอิงที่ใช้เชื่อมต่อดูเหมือนไม่ปรากฏแบบสองทาง