1 पॉइंट द्वारा GN⁺ 2023-07-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Homebrew अनाम analytics को InfluxDB में एकत्र करता है और केवल पहली brew update रन या install के समय सूचना दिखाने के बाद ही analytics सक्षम करता है
  • मुफ्त और volunteer-आधारित project होने के कारण formula failure rate, OS version, और command usage frequency जैसे डेटा feature और fix की प्राथमिकता तय करने का आधार बनते हैं
  • InfluxDB की अनाम analytics data को 365 दिन तक रखा जाता है, और पहले Google Analytics को भेजा गया सारा analytics data हटा दिया गया है
  • संग्रह का दायरा CI है या नहीं, default install prefix के उपयोग है या नहीं, CPU architecture, OS और Homebrew version, install·build error·command execution event आदि तक सीमित है
  • उपयोगकर्ता HOMEBREW_NO_ANALYTICS=1 या brew analytics off से analytics बंद कर सकते हैं, और किसी विशेष event को किसी विशेष user से जोड़ा नहीं जाता या IP address संग्रहीत नहीं किए जाते

analytics कब चालू होता है और इसका उपयोग क्यों किया जाता है

  • Homebrew मुफ्त में उपलब्ध है और volunteers इसे अपने खाली समय में चलाते हैं, इसलिए feature design और काम की प्राथमिकता तय करने के लिए अलग user research resources की कमी है
  • अनाम analytics का उपयोग यह समझने के लिए किया जाता है कि Homebrew का उपयोग कैसे, कहाँ और कब हो रहा है, ताकि fixes और features की प्राथमिकता तय की जा सके
    • जो formula व्यापक रूप से उपयोग किए जाते हैं लेकिन अक्सर fail होते हैं, उन्हें दूसरे formula की तुलना में fix करने में अधिक प्राथमिकता मिल सकती है
    • OS version की जानकारी समर्थित macOS versions की प्राथमिकता तय करने और केवल किसी खास version में होने वाली build failures की पहचान करने में काम आती है
    • कम इस्तेमाल होने वाले commands को हटाया जा सकता है
  • analytics केवल पहली बार brew update चलाने या Homebrew install करने पर सूचना दिखाने के बाद ही सक्षम होता है
    • सूचना से पहले analytics data नहीं भेजा जाता, ताकि user data भेजे जाने से पहले opt-out कर सके
  • InfluxDB में संग्रहीत अनाम analytics data की retention अवधि 365 दिन है
  • पहले Google Analytics को भेजा गया सारा analytics data हटा दिया गया है

कौन से event भेजे जाते हैं और संग्रह का दायरा क्या है

  • सभी formula या cask events के साथ कुछ सामान्य जानकारी भी दर्ज की जाती है
    • क्या यह CI से भेजा जा रहा है
    • क्या default install prefix इस्तेमाल हो रहा है
      • default prefix का उदाहरण /opt/homebrew
      • custom prefix का उदाहरण /home/mike/.brew
      • anonymity बनाए रखने के लिए custom prefix को custom-prefix के रूप में भेजा जाता है
    • क्या HOMEBREW_DEVELOPER environment variable सेट है
    • क्या devcmdrun सक्रिय है, जो बताता है कि Homebrew developer command कभी चलाया गया है या नहीं
    • CPU architecture, जैसे x86_64
    • OS और version, जैसे macOS 13
    • Homebrew version, जैसे 4.0.0
  • Homebrew analytics कई event categories रिकॉर्ड करता है
    • install: non-private GitHub tap से install किए गए Homebrew formula और उपयोग किए गए options
    • install_on_request: वे formula और options जिन्हें user ने स्पष्ट रूप से install करने के लिए कहा
    • cask_install: non-private GitHub tap से install किए गए Homebrew cask
    • build_error: वे formula और options जिनकी install विफल हुई
      • build error का विस्तृत विवरण या logs नहीं भेजे जाते
    • command_run: चलाए गए commands और flags
    • test_bot_test: केवल Homebrew CI environment में pull request test results रिकॉर्ड करने के लिए उपयोग होता है
  • अगर environment में HOMEBREW_ANALYTICS_DEBUG=1 सेट किया जाए, तो Homebrew analytics द्वारा भेजी जाने वाली सारी जानकारी देखी जा सकती है, और यह setting analytics transmission को भी रोक देती है
  • analytics data Homebrew execution के दौरान HTTPS के माध्यम से InfluxDB को भेजा जाता है

सार्वजनिक data, code और opt-out

  • aggregated analytics events को public page पर देखा जा सकता है, और एक JSON API भी उपलब्ध है
    • अधिकांश Homebrew maintainers को इस public resource से अधिक विस्तृत analytics data का access नहीं दिया जाता
  • Homebrew developers किसी विशेष event को किसी विशेष user से जोड़ नहीं सकते, और IP addresses को न तो store किया जाता है और न ही प्राप्त किया जाता है
  • analytics code को analytics.rb और analytics.sh में देखा जा सकता है
    • यह अलग background process में चलता है
    • Homebrew execution में देरी न हो, इसके लिए यह जल्दी fail हो जाता है
    • network connection न होने पर यह तुरंत और चुपचाप fail हो जाता है
  • analytics बंद करने के लिए environment variable या command का उपयोग किया जा सकता है
    • export HOMEBREW_NO_ANALYTICS=1
    • brew analytics off

1 टिप्पणियां

 
GN⁺ 2023-07-09
Hacker News की टिप्पणियाँ
  • Homebrew की analytics सुविधा अब पूरी तरह EU के InfluxDB instance पर शिफ्ट हो गई है, पहले से कम डेटा इकट्ठा करती है, और Google Analytics का सारा डेटा हटा दिया गया है
    https://docs.brew.sh/Analytics
    आज सुबह अपडेट के दौरान brew analytics चलाया तो InfluxDB analytics are disabled. और Google Analytics were destroyed. दिखा

    • ऐसा इसलिए है क्योंकि HOMEBREW_NO_ANALYTICS 1 सेट है, और यह सेटिंग हटाने पर InfluxDB analytics चालू हो जाएगी
    • कौन-सी database technology इस्तेमाल हो रही है, यह तक बताना थोड़ा अजीब लगता है। पूरे संदर्भ में यह खास प्रासंगिक नहीं दिखता
  • Homebrew टीम ने Google Analytics से बाहर निकलने का वादा निभाया, यह बधाई की बात है

  • अगर मौजूदा सेटिंग नीचे जैसी है तो brew analytics state में InfluxDB analytics disabled और Google Analytics deleted दिखेगा
    HOMEBREW_NO_GOOGLE_ANALYTICS 1
    HOMEBREW_NO_ANALYTICS 1
    इसके बाद brew update करने पर चेतावनी आती है कि HOMEBREW_NO_GOOGLE_ANALYTICS का अब कोई असर नहीं है, इसलिए इसे हटा सकते हैं; साथ ही यह भी बताया जाता है कि analytics अब EU के InfluxDB पर शिफ्ट हो गई है और brew analytics on से इसे फिर चालू किया जा सकता है
    फिर भी अगर InfluxDB analytics को चालू नहीं होने देना है, तो HOMEBREW_NO_ANALYTICS 1 बनाए रखना होगा

  • Homebrew की वजह से ही मैं अब तक macOS इस्तेमाल कर रहा हूँ; वरना शायद Linux पर apt इस्तेमाल करता
    सोच रहा हूँ कि brew.sh जैसी apt package search के लिए कोई अच्छी साइट है क्या। Ubuntu का apt पेज बहुत उलझाऊ है

    • https://packages.debian.org/search?keywords= के बाद अपनी खोज जोड़ दें
    • “apt package search” से आपका क्या मतलब है, यह स्पष्ट नहीं, लेकिन आम तौर पर apt-cache search इस्तेमाल किया जाता है
  • समझ नहीं आता कि किसी package manager को analytics data क्यों इकट्ठा करना चाहिए
    इकट्ठा किया गया डेटा device fingerprinting के ज़रिए पहचानने योग्य भी हो सकता है

    • Homebrew पूरी तरह open source contributors द्वारा maintain किया जाता है, और हज़ारों packages को up to date रखना अपने आप में बहुत बड़ा काम है
      analytics data एक warning system की तरह काम करता है और इससे package की अहमियत, अस्थिरता वगैरह का वास्तविक आधार मिलता है
      Homebrew macOS पर चलता है, लेकिन Apple macOS को कैसे बदलेगा इस पर उसका कोई नियंत्रण नहीं, इसलिए Apple के एकतरफा बदलावों से होने वाली टूट-फूट को जल्दी पकड़ने में analytics मदद करती है
    • लेख की शुरुआत में “Why?” के तहत वजह दी गई है
      Homebrew मुफ़्त है और पूरी तरह volunteers अपने खाली समय में चलाते हैं, इसलिए भविष्य की feature design या मौजूदा कामों की priority तय करने के लिए विस्तृत user research करने के संसाधन नहीं हैं
      anonymous analytics से यह समझा जा सकता है कि कौन-से formula व्यापक रूप से उपयोग होते हुए भी अक्सर fail होते हैं, किन macOS versions को प्राथमिकता देनी चाहिए, और कौन-सी build failures सिर्फ़ किसी खास version पर होती हैं
    • यह जाने बिना कि product का इस्तेमाल कैसे हो रहा है, उसे बेहतर बनाना मुश्किल है
    • सच में जिज्ञासा है, यहाँ device fingerprint काम कैसे करेगा, यह समझ नहीं आता
  • अपडेट: यह भी कहा गया है कि Google Analytics का उपयोग अपने आप में कोई समस्या नहीं है
    https://arstechnica.com/tech-policy/2023/07/big-tech-can-tra...

  • brew analytics off

  • हैरानी होती है कि एक मुफ़्त सेवा दूसरी साइटों के अंतहीन परेशान करने वाले pop-ups की तुलना में GDPR compliance बेहतर तरीके से कर सकती है
    वे झुंझलाने वाले pop-ups कभी-कभी ज़रूरत से ज़्यादा जानबूझकर परेशान करने के लिए बने लगते हैं

    • ऐसा system जो लगभग कोई personal data store ही नहीं करता, उसके लिए GDPR compliance होना स्वाभाविक रूप से आसान है
      “कम डेटा, कम समस्या” वाली बात तो है ही, लेकिन bureaucracy भी बड़ी वजह है। जब मैंने पहले GDPR compliance संभाली थी, security team हर डेटा हमेशा के लिए रखना चाहती थी, और GDPR scope तय करने वाली legal team तथा general legal team आपस में टकरा रही थीं
      खासकर general legal team सिस्टम क्या करता है यह न समझते हुए भी, और समझाने के बावजूद अनदेखा करते हुए, लगातार ऐसे retention policy changes आगे बढ़ा रही थी जो या तो अप्रासंगिक थे या आपस में टकराते थे
    • यह अपेक्षा करना उचित है कि non-profit services, उन सेवाओं की तुलना में privacy compliance बेहतर करेंगी जो user data का अधिकतम उपयोग करके पैसा कमाना चाहती हैं
    • GDPR compliance बहुत आसान है। शुरू से ही personally identifiable information इकट्ठा मत कीजिए
      अगर डेटा इकट्ठा करना है, तो user से पूछिए और साफ़-साफ़ बताइए कि उसका क्या किया जाएगा
      मुश्किल तब शुरू होती है जब आप इतना ज़्यादा डेटा इकट्ठा करना चाहते हैं कि user पूरी बात जानकर सहमत न हो, और उसे कई third parties को भेजना चाहते हों। तब लोग कानूनी रूप से compliant दिखने के लिए user को गुमराह करने वाली सबसे अंधेरी तरकीबें इस्तेमाल करने लगते हैं
  • यह भी कमाल है कि command-line tools तक घर बैठे telemetry भेज रहे हैं। spyware से कोई जगह खाली नहीं बची

    • “spyware” को monetization tracking के अर्थ में और डेवलपर द्वारा अपने चल रहे सिस्टम की स्थिति समझने के लिए की जाने वाली telemetry को एक ही चीज़ मान लेना मूर्खतापूर्ण और हानिकारक है
      Homebrew एक जटिल system है जो कई तरीकों से टूट सकता है, और इसके पीछे कोई कंपनी भी नहीं है; यह पूरी तरह open source के रूप में विकसित होता है
      चल रहे system का कुछ हद तक अवलोकन कर पाना बुनियादी ज़रूरत है। एक बेहद उपयोगी project पर अपना समय दान करने वाले developers से यह कहना कि वे paranoia की वजह से एक हाथ बाँधकर काम करें, अनुचित है
      अगर इस तरह की माँगें मान ली जाएँ, तो open source software या तो बनना बंद हो जाएगा, या फिर ऐसे commercial कंपनियों के हाथ में चला जाएगा जिनकी spyware के मामले में नीयत कहीं कम अच्छी होगी
      यहाँ तो बात यह है कि Homebrew project ने community की राय सुनकर privacy-preserving self-hosted analytics अपनाई है, इसलिए ऐसे लोग कभी संतुष्ट नहीं होंगे और इन्हें नज़रअंदाज़ करना ही ठीक है
    • सिर्फ़ command line होना भेद की रेखा क्यों होनी चाहिए, यह समझ नहीं आता
      अगर यह इंटरनेट कनेक्शन के बिना चलने वाला साधारण tool होता तो बात और थी, लेकिन Homebrew सिर्फ़ command-line tool नहीं बल्कि लगातार चलने वाला repository और build system भी है
      एक developer के तौर पर यह जानना स्वाभाविक है कि किसी खास बदलाव का user experience पर क्या असर पड़ता है
  • Google Analytics से बाहर निकलना थोड़ा अटपटा फैसला लगता है
    Google को Chrome users के ज़रिए मनचाहा लगभग सारा डेटा मिल ही जाता है, और GA असल में non-Chrome users तक को Google की पकड़ में लाने जैसा काम करता है
    उससे भी ज़्यादा अहम बात यह है कि इससे मैं यह भी देख पाता हूँ कि Google मेरी साइट पर क्या देख रहा है
    GA बंद करने से Google को थोड़ा रोका जा सकता है, लेकिन शायद इससे user usage data का ज़्यादा से ज़्यादा 10% ही कम होगा; बदले में मैं यह देखने की अपनी क्षमता खो दूँगा कि Google मेरे बारे में क्या देख रहा है
    Google अब भी search traffic का 90% से ज़्यादा है, इसलिए GA छोड़ना सिर रेत में गाड़ लेने जैसा लगता है
    यह समझ आता है कि लोग track नहीं होना चाहते या data sharing नहीं चाहते, लेकिन सिर्फ़ GA बंद कर देना क्या सच में उस समस्या का समाधान है, इस पर संदेह है

    • यह command-line tool analytics है, इसलिए जब तक जानबूझकर Google को न भेजा जाए, Google के पास जाने वाला डेटा 0% है
    • Homebrew maintainers ने शायद सोचा होगा कि GA छोड़ने पर कई तरह की शिकायतें आएँगी, लेकिन यह नहीं सोचा होगा कि कोई इसे “अटपटा” कहेगा
    • GA को GDPR-compliant नहीं माना गया है, इसलिए अगर आप EU में प्रतिबंधित नहीं होना चाहते तो GA छोड़ना पड़ेगा
      https://usercentrics.com/knowledge-hub/google-analytics-and-...
      एक Swedish company पर भारी जुर्माना भी लगाया गया था: https://techcrunch.com/2023/07/03/google-analytics-sweden-gd...