แผนที่ GitHub
(github.com/anvaka)-
แผนที่โปรเจ็กต์ 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 ความคิดเห็น
ความเห็นจาก Hacker News
มีความเห็นว่ารู้สึกแปลกใจที่ Rustland มีขนาดเล็ก และมีขนาดเพียงประมาณหนึ่งสัปดาห์ของ Clouderra
มินิเกมที่ให้หาบางโปรเจ็กต์จากแผนที่อย่างเดียวโดยไม่มีฟังก์ชันค้นหานั้นสนุกดี
น่าสนใจที่ torvalds/linux อยู่ใน Fronterra และอยู่ข้าง ๆ โปรเจ็กต์ JS, รายการ awesome-X และเช็กลิสต์ฟรอนต์เอนด์
ขำดีที่ส่วนของ Among Us ใช้ชื่อว่า "Sussex"
รู้สึกไม่แน่ใจว่าการใช้อุปมาแบบประเทศ/แผนที่เป็นตัวเลือกที่ดีที่สุดหรือไม่
การเลือกใช้ชื่อที่มีเอกลักษณ์อย่าง "Homelabia" นั้นสนุกดี
เคยมีการพูดคุยเรื่องนี้มาก่อน
สงสัยว่าการเชื่อมต่อระหว่างรีโพถูกกำหนดอย่างไร