1 คะแนน โดย GN⁺ 2023-07-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Homebrew เก็บข้อมูลวิเคราะห์แบบไม่ระบุตัวตนด้วย InfluxDB และจะเปิดใช้การวิเคราะห์หลังจากแสดงการแจ้งเตือนเมื่อรัน brew update ครั้งแรกหรือตอนติดตั้งเท่านั้น
  • ด้วยลักษณะของโปรเจกต์ที่ให้ใช้ฟรีและขับเคลื่อนโดยอาสาสมัคร ข้อมูลอย่าง อัตราความล้มเหลวของ formula, เวอร์ชัน OS และความถี่การใช้คำสั่ง จึงเป็นพื้นฐานในการจัดลำดับความสำคัญของฟีเจอร์และการแก้ไข
  • ข้อมูลวิเคราะห์แบบไม่ระบุตัวตนใน InfluxDB จะถูกเก็บไว้ 365 วัน และข้อมูลวิเคราะห์ทั้งหมดที่เคยส่งไปยัง Google Analytics ถูกลบแล้ว
  • ขอบเขตการเก็บข้อมูลจำกัดอยู่ที่ข้อมูล เช่น เป็น CI หรือไม่, ใช้ prefix การติดตั้งเริ่มต้นหรือไม่, สถาปัตยกรรม CPU, เวอร์ชัน OS และ Homebrew, เหตุการณ์การติดตั้ง·ข้อผิดพลาดในการ build·การรันคำสั่ง
  • ผู้ใช้สามารถปิดการวิเคราะห์ได้ด้วย HOMEBREW_NO_ANALYTICS=1 หรือ brew analytics off และระบบจะไม่เชื่อมโยงเหตุการณ์ใดเหตุการณ์หนึ่งกับผู้ใช้รายใดรายหนึ่ง หรือเก็บที่อยู่ IP

จุดที่เปิดใช้การวิเคราะห์และเหตุผลที่ใช้

  • Homebrew ให้บริการฟรี และดำเนินงานโดยอาสาสมัครในเวลาว่าง จึงขาดทรัพยากรวิจัยผู้ใช้โดยเฉพาะสำหรับการออกแบบฟีเจอร์และจัดลำดับความสำคัญของงาน
  • การวิเคราะห์แบบไม่ระบุตัวตนใช้เพื่อทำความเข้าใจว่า Homebrew ถูกใช้งานอย่างไร ที่ไหน และเมื่อใด เพื่อนำไปจัดลำดับความสำคัญของ การแก้ไขและฟีเจอร์
    • formula ที่มีการใช้งานกว้างขวางแต่ล้มเหลวบ่อย อาจได้รับความสำคัญในการแก้ไขสูงกว่า formula อื่น
    • ข้อมูลเวอร์ชัน OS ถูกใช้เพื่อจัดลำดับความสำคัญของเวอร์ชัน macOS ที่จะรองรับ และระบุ build failure ที่เกิดขึ้นเฉพาะในบางเวอร์ชัน
    • คำสั่งที่มีความถี่การใช้งานต่ำอาจถูกยกเลิกได้
  • การวิเคราะห์จะเปิดใช้งานหลังจากแสดงการแจ้งเตือนเมื่อรัน brew update ครั้งแรกหรือติดตั้ง Homebrew เท่านั้น
    • ก่อนการแจ้งเตือนจะไม่มีการส่งข้อมูลวิเคราะห์ ทำให้ผู้ใช้สามารถ opt-out ก่อนที่จะส่งข้อมูลได้
  • ระยะเวลาเก็บรักษาข้อมูลวิเคราะห์แบบไม่ระบุตัวตนที่บันทึกใน InfluxDB คือ 365 วัน
  • ข้อมูลวิเคราะห์ทั้งหมดที่เคยส่งไปยัง Google Analytics ถูกลบแล้ว

เหตุการณ์ที่ส่งและขอบเขตการเก็บข้อมูล

  • เหตุการณ์ของ formula หรือ cask ทุกเหตุการณ์จะบันทึกข้อมูลทั่วไปประกอบไปด้วย
    • ส่งมาจาก CI หรือไม่
    • ใช้ prefix การติดตั้งเริ่มต้นหรือไม่
      • ตัวอย่าง prefix เริ่มต้นคือ /opt/homebrew
      • ตัวอย่าง prefix ที่ผู้ใช้กำหนดเองคือ /home/mike/.brew
      • prefix ที่ผู้ใช้กำหนดเองจะถูกส่งเป็น custom-prefix เพื่อรักษาความไม่ระบุตัวตน
    • มีการตั้งค่าตัวแปรสภาพแวดล้อม HOMEBREW_DEVELOPER หรือไม่
    • ค่า devcmdrun ที่บ่งชี้ว่าเคยรันคำสั่งสำหรับนักพัฒนา Homebrew หรือไม่
    • สถาปัตยกรรม CPU เช่น x86_64
    • OS และเวอร์ชัน เช่น macOS 13
    • เวอร์ชัน Homebrew เช่น 4.0.0
  • การวิเคราะห์ของ Homebrew บันทึกเหตุการณ์หลายหมวดหมู่
    • install: formula ของ Homebrew ที่ติดตั้งจาก GitHub tap ที่ไม่เป็นส่วนตัว และตัวเลือกที่ใช้
    • install_on_request: formula และตัวเลือกที่ผู้ใช้ร้องขอติดตั้งอย่างชัดเจน
    • cask_install: cask ของ Homebrew ที่ติดตั้งจาก GitHub tap ที่ไม่เป็นส่วนตัว
    • build_error: formula และตัวเลือกที่ติดตั้งไม่สำเร็จ
      • ไม่ส่งรายละเอียดหรือ log ของข้อผิดพลาดในการ build
    • command_run: คำสั่งและ flag ที่รัน
    • test_bot_test: ใช้เฉพาะในสภาพแวดล้อม Homebrew CI เพื่อบันทึกผลการทดสอบ pull request
  • เมื่อตั้งค่า HOMEBREW_ANALYTICS_DEBUG=1 ในสภาพแวดล้อม จะสามารถดูข้อมูลทั้งหมดที่การวิเคราะห์ของ Homebrew ส่งออกไปได้ และการตั้งค่านี้จะหยุดการส่งข้อมูลวิเคราะห์ด้วย
  • ข้อมูลวิเคราะห์ถูกส่งไปยัง InfluxDB ผ่าน HTTPS ระหว่างการรัน Homebrew

ข้อมูลสาธารณะ โค้ด และการ opt-out

  • สามารถดูเหตุการณ์วิเคราะห์แบบสรุปรวมได้ที่ หน้าสาธารณะ และยังมี JSON API ให้ใช้งานด้วย
    • maintainer หลักส่วนใหญ่ของ Homebrew จะไม่ได้รับสิทธิ์เข้าถึงข้อมูลวิเคราะห์ที่ละเอียดกว่าทรัพยากรสาธารณะนี้
  • นักพัฒนา Homebrew ไม่สามารถเชื่อมโยงเหตุการณ์ใดเหตุการณ์หนึ่งกับผู้ใช้รายใดรายหนึ่งได้ และไม่ได้เก็บหรือรับที่อยู่ IP
  • สามารถดูโค้ดการวิเคราะห์ได้ที่ analytics.rb และ analytics.sh
    • ทำงานใน process เบื้องหลังแยกต่างหาก
    • ล้มเหลวอย่างรวดเร็วเพื่อไม่ให้การรัน Homebrew ล่าช้า
    • หากไม่มีการเชื่อมต่อเครือข่าย จะล้มเหลวทันทีอย่างเงียบ ๆ
  • หากต้องการปิดการวิเคราะห์ สามารถใช้ตัวแปรสภาพแวดล้อมหรือคำสั่งได้
    • export HOMEBREW_NO_ANALYTICS=1
    • brew analytics off

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

 
GN⁺ 2023-07-09
ความคิดเห็นจาก Hacker News
  • ฟีเจอร์ analytics ของ Homebrew ได้ย้ายไปยัง อินสแตนซ์ InfluxDB ในสหภาพยุโรป อย่างสมบูรณ์แล้ว เก็บข้อมูลน้อยกว่าเดิม และข้อมูล Google Analytics ก็ถูกลบทั้งหมด
    https://docs.brew.sh/Analytics
    เมื่อลองรัน brew analytics ระหว่างอัปเดตเมื่อเช้านี้ ก็ขึ้นว่า InfluxDB analytics are disabled. และ Google Analytics were destroyed.

    • นั่นเป็นเพราะตั้งค่า HOMEBREW_NO_ANALYTICS 1 ไว้ ถ้าเอาการตั้งค่านี้ออก InfluxDB analytics ก็จะถูกเปิดใช้งาน
    • การระบุไปถึง เทคโนโลยีฐานข้อมูล ที่ใช้ก็ดูแปลกนิดหน่อย ในบริบททั้งหมดแล้วเหมือนจะไม่ได้เกี่ยวอะไรมาก
  • น่ายินดีกับทีม Homebrew ที่รักษา คำมั่นว่าจะออกจาก Google Analytics ได้สำเร็จ

  • ถ้าตอนนี้ตั้งค่าไว้แบบด้านล่าง brew analytics state จะแสดงว่า InfluxDB analytics ถูกปิดใช้งาน และ Google Analytics ถูกลบไปแล้ว
    HOMEBREW_NO_GOOGLE_ANALYTICS 1
    HOMEBREW_NO_ANALYTICS 1
    หลังจากนั้นพอรัน brew update ก็จะมีคำเตือนว่า HOMEBREW_NO_GOOGLE_ANALYTICS ไม่มีผลอีกต่อไปแล้ว จึงสามารถเอาออกได้ พร้อมแจ้งว่า analytics ได้ย้ายไปยัง InfluxDB ในสหภาพยุโรป และให้เปิดใหม่ด้วย brew analytics on
    ถึงอย่างนั้น ถ้าต้องการไม่ให้ InfluxDB analytics ถูกเปิด ก็ยังต้องคง HOMEBREW_NO_ANALYTICS 1 ไว้

  • ผมยังใช้ macOS อยู่เพราะ Homebrew และถ้าไม่มีมันก็คงใช้ apt บน Linux ไปแล้ว
    สงสัยว่ามีเว็บสำหรับ ค้นหาแพ็กเกจ apt ที่ใช้งานดีแบบ brew.sh ไหม หน้า apt ของ Ubuntu ชวนสับสนเกินไป

    • แค่เติมคำค้นที่ต้องการต่อท้าย https://packages.debian.org/search?keywords= ก็พอ
    • ไม่แน่ใจว่า “ค้นหาแพ็กเกจ apt” หมายถึงอะไร แต่ปกติคนจะใช้ apt-cache search
  • ไม่เข้าใจว่าทำไมตัวจัดการแพ็กเกจถึงต้องเก็บ ข้อมูล analytics
    ข้อมูลที่เก็บก็อาจใช้ระบุตัวตนผ่าน device fingerprinting ได้

    • Homebrew ถูกดูแลโดย ผู้มีส่วนร่วมโอเพนซอร์ส ทั้งหมด และแค่การดูแลให้แพ็กเกจนับพันตัวทันสมัยอยู่เสมอก็เป็นงานใหญ่มากแล้ว
      ข้อมูล analytics เป็นทั้งระบบเตือนภัยและหลักฐานจริงสำหรับประเมินความสำคัญของแพ็กเกจ ความไม่เสถียร และเรื่องอื่น ๆ
      อีกทั้ง Homebrew ทำงานอยู่บน macOS แต่ควบคุมไม่ได้ว่า Apple จะเปลี่ยน macOS อย่างไร ดังนั้น analytics จึงช่วยตรวจจับความเสียหายจากการเปลี่ยนแปลงฝ่ายเดียวของ Apple ได้อย่างรวดเร็ว
    • เหตุผลอยู่ในหัวข้อ “Why?” ตอนต้นของบทความ
      Homebrew เป็นบริการฟรีและดำเนินงานโดยอาสาสมัครทั้งหมดในเวลาว่าง จึงไม่มีทรัพยากรพอจะทำวิจัยผู้ใช้อย่างละเอียดเพื่อกำหนดฟีเจอร์ในอนาคตหรือจัดลำดับความสำคัญของงานปัจจุบัน
      ผ่าน anonymous analytics จึงพอมองเห็นได้ว่า formula ไหนถูกใช้แพร่หลายแต่ล้มเหลวบ่อย ควรให้การรองรับ macOS เวอร์ชันใดก่อน และมีการบิลด์ล้มเหลวแบบใดที่เกิดเฉพาะในบางเวอร์ชัน
    • ถ้าไม่รู้ว่าผลิตภัณฑ์ถูกใช้อย่างไร ก็ยากที่จะปรับปรุงมัน
    • สงสัยจริง ๆ ว่า device fingerprinting ในกรณีนี้จะทำงานอย่างไร
  • อัปเดต: มีข้อมูลด้วยว่า การใช้ Google Analytics เอง ไม่ใช่ปัญหา
    https://arstechnica.com/tech-policy/2023/07/big-tech-can-tra...

  • brew analytics off

  • น่าทึ่งที่บริการฟรีกลับทำ ตาม GDPR ได้ดีกว่าป๊อปอัปรบกวนไม่รู้จบของเว็บอื่น ๆ
    ป๊อปอปน่ารำคาญพวกนั้นบางทีก็ดูเหมือนไม่ได้จำเป็น แต่ตั้งใจทำมาเพื่อกวนผู้ใช้มากกว่า

    • ระบบที่แทบไม่เก็บข้อมูลส่วนบุคคลย่อมทำตาม GDPR ได้ง่ายอยู่แล้ว
      นอกจากเรื่อง “ยิ่งมีข้อมูลน้อย ปัญหาก็น้อย” แล้ว ฝั่งระบบราชการก็เป็นปัจจัยใหญ่ด้วย ตอนที่เคยรับผิดชอบเรื่องการทำตาม GDPR ทีมความปลอดภัยอยากเก็บข้อมูลทุกอย่างตลอดไป ส่วนทีมกฎหมายที่ดูขอบเขตของ GDPR กับทีมกฎหมายทั่วไปก็ขัดแย้งกันเอง
      โดยเฉพาะทีมกฎหมายทั่วไปที่ทั้งไม่เข้าใจว่าระบบทำอะไรและไม่ฟังคำอธิบาย แต่ยังคงผลักดันการเปลี่ยนนโยบายการเก็บรักษาข้อมูลที่ไม่เกี่ยวข้องหรือขัดแย้งกันเองอยู่เรื่อย ๆ
    • คาดหวังได้ว่าบริการไม่แสวงหากำไรจะทำ ตามข้อกำหนดด้านความเป็นส่วนตัว ได้ดีกว่าบริการที่พยายามทำเงินจากการใช้ข้อมูลผู้ใช้ให้มากที่สุด
    • การทำตาม GDPR ง่ายมาก แค่ไม่เก็บ ข้อมูลที่ระบุตัวบุคคลได้ ตั้งแต่แรกก็พอ
      ถ้าอยากเก็บข้อมูล ก็ถามผู้ใช้และอธิบายให้ชัดว่าจะเอาไปทำอะไร
      มันจะเริ่มยากก็ตอนที่พยายามเก็บข้อมูลมากจนถ้าผู้ใช้รู้ขอบเขตจริง ๆ ก็คงไม่ยอม และยังส่งต่อให้บุคคลที่สามหลายราย จากนั้นก็จะเริ่มใช้วิธีสกปรกสารพัดเพื่อหลอกผู้ใช้ โดยทำเหมือนว่าทางกฎหมายยังปฏิบัติตามอยู่
  • แม้แต่เครื่องมือบรรทัดคำสั่งยังส่ง telemetry กลับบ้าน ช่างยอดเยี่ยมจริง ๆ เหมือนไม่มีที่ไหนไม่ใช่สปายแวร์

    • การเอา “สปายแวร์” ในความหมายของการติดตามเพื่อสร้างรายได้ มาปนกับ telemetry ที่ใช้ให้ผู้พัฒนาเห็นสภาพของระบบที่กำลังใช้งานอยู่ เป็นเรื่องทั้งโง่และเป็นโทษ
      Homebrew เป็นระบบซับซ้อนที่พังได้หลายแบบ และก็ไม่ได้มีบริษัทอยู่เบื้องหลัง แต่พัฒนาแบบโอเพนซอร์สทั้งหมด
      การมองเห็นได้บ้างว่าระบบที่กำลังรันอยู่ทำงานอย่างไรถือเป็นเรื่องพื้นฐาน เท่ากับว่ากำลังบอกให้นักพัฒนาที่สละเวลามาช่วยโครงการที่มีประโยชน์มากนี้ทำงานทั้ง ๆ ที่ถูกมัดมือไว้เพราะความหวาดระแวง
      ถ้าข้อเรียกร้องแบบนี้ชนะ สุดท้ายซอฟต์แวร์โอเพนซอร์สอาจไม่ถูกสร้างขึ้นเลย หรือไม่ก็ถูกส่งต่อให้บริษัทเชิงพาณิชย์ที่มีเจตนาดีต่อเรื่องสปายแวร์น้อยกว่ามาก
      กรณีนี้คือโครงการ Homebrew รับฟังเสียงจากชุมชนและย้ายไปใช้ analytics แบบโฮสต์เองที่คำนึงถึงความเป็นส่วนตัว ดังนั้นคนแบบนี้ก็คงไม่มีวันพอใจอยู่ดี และควรถูกเมินไป
    • ไม่เข้าใจว่าทำไมการเป็นเครื่องมือบรรทัดคำสั่งถึงถูกใช้เป็นเส้นแบ่ง
      ถ้าเป็นเครื่องมือง่าย ๆ ที่ไม่ต้องต่ออินเทอร์เน็ตก็คงอีกเรื่อง แต่ Homebrew ไม่ได้เป็นแค่เครื่องมือบรรทัดคำสั่ง มันยังเป็น คลังซอฟต์แวร์และระบบบิลด์ ที่เคลื่อนไหวตลอดเวลาอีกด้วย
      ถ้าเป็นนักพัฒนา ก็ย่อมอยากรู้ว่าการเปลี่ยนแปลงบางอย่างส่งผลต่อประสบการณ์ผู้ใช้อย่างไร
  • การออกจาก Google Analytics ให้ความรู้สึกเหมือนเป็นทางเลือกที่ น่าอึดอัดใจ นิดหน่อย
    Google น่าจะได้ข้อมูลที่ต้องการเกือบทั้งหมดผ่านผู้ใช้ Chrome อยู่แล้ว และ GA ก็แทบจะมีบทบาทแค่ช่วยให้ Google มองเห็นผู้ใช้ที่ไม่ใช่ Chrome เพิ่มขึ้น
    ที่สำคัญกว่านั้นคือมันทำให้ผมเห็นได้ด้วยว่า Google เห็นอะไรบนเว็บไซต์ของผม
    การปิด GA อาจขัดขวาง Google ได้เล็กน้อย แต่ก็น่าจะลดข้อมูลการใช้งานของผู้ใช้ลงได้แค่ราว 10% อย่างมาก ขณะเดียวกันผมกลับเสียความสามารถในการเห็นสิ่งที่ Google เห็นเกี่ยวกับผม
    Google ยังเป็นแหล่งทราฟฟิกจากการค้นหามากกว่า 90% อยู่ดี ดังนั้นการออกจาก GA จึงให้ความรู้สึกเหมือนเอาหัวปักทราย
    เข้าใจได้ที่ไม่อยากถูกติดตามหรือให้มีการแชร์ข้อมูล แต่ก็ไม่แน่ใจว่าการปิด GA จะแก้ปัญหานั้นได้จริงหรือไม่

    • นี่คือ analytics ของเครื่องมือบรรทัดคำสั่ง ดังนั้นถ้าไม่ได้ส่งให้ Google โดยเจตนา ข้อมูลที่ Google เห็นก็คือ 0%
    • ผู้ดูแล Homebrew เองก็คงคาดไว้ว่าต่อให้ออกจาก GA ก็ยังจะมีคนไม่พอใจหลายแบบ แต่คงไม่คิดว่าจะถูกมองว่า “น่าอึดอัดใจ”
    • มีคำตัดสินว่า GA ไม่เป็นไปตาม GDPR ดังนั้นถ้าไม่อยากถูกห้ามใช้ในสหภาพยุโรป ก็ต้องเลิกใช้ GA
      https://usercentrics.com/knowledge-hub/google-analytics-and-...
      มีบริษัทสวีเดนแห่งหนึ่งถูกปรับเป็นเงินจำนวนมากด้วย: https://techcrunch.com/2023/07/03/google-analytics-sweden-gd...