- DO_NOT_TRACK एक प्रस्ताव है, जिसका उद्देश्य अलग-अलग CLI tools, SDKs और frameworks में telemetry बंद करने के विभिन्न तरीकों को एक ही environment variable से एकीकृत करना है
.NET, AWS SAM CLI, Azure CLI, Gatsby, Go, Google Cloud SDK, Homebrew, Netlify CLI, Syncthing में telemetry बंद करने के लिए अलग-अलग settings या commands का उपयोग किया जाता है
DO_NOT_TRACK=1 का अर्थ है कि विज्ञापन tracking, usage reporting, telemetry, crash reporting, और ऐसी requests को अस्वीकार किया जाए जो feature के लिए अनिवार्य नहीं हैं और software maker या third party के लिए भेजी जाती हैं
- उपयोगकर्ता
export DO_NOT_TRACK=1 सेट कर सकते हैं और इसे Bash, Zsh, Fish, PowerShell, Windows CMD की shell settings में जोड़कर सभी terminal sessions पर लागू कर सकते हैं
- software makers को
DO_NOT_TRACK का मान 1 होने पर सभी tracking को disable करना चाहिए, और मौजूदा disable करने के तरीकों के साथ इस variable का भी सम्मान करना चाहिए
समस्या और प्रस्ताव
- कई CLI tools, SDKs और frameworks डिफ़ॉल्ट रूप से telemetry data इकट्ठा करते हैं, और हर tool में इसे बंद करने का तरीका अलग है
- उदाहरण के लिए
.NET में DOTNET_CLI_TELEMETRY_OPTOUT=1, AWS SAM CLI में SAM_CLI_TELEMETRY=0, Azure CLI में AZURE_CORE_COLLECT_TELEMETRY=0, Gatsby में GATSBY_TELEMETRY_DISABLED=1, Go में go telemetry off, Google Cloud SDK में gcloud config set disable_usage_reporting true, Homebrew में HOMEBREW_NO_ANALYTICS=1, Netlify CLI में netlify --telemetry-disable, और Syncthing में STNOUPGRADE=1 का उपयोग होता है
DO_NOT_TRACK को एक single standard environment variable के रूप में प्रस्तावित किया गया है, जो यह स्पष्ट रूप से व्यक्त करता है कि उपयोगकर्ता निम्नलिखित चीज़ों को अस्वीकार करता है
- विज्ञापन tracking
- anonymous हो या न हो, usage reporting
- telemetry
- crash reporting
- software maker या third party के लिए ऐसी requests जो feature के लिए अनिवार्य नहीं हैं
- उपयोगकर्ता
export DO_NOT_TRACK=1 सेट करके यह बता सकते हैं कि वे केवल local software चाहते हैं
- shell settings file में जोड़ने पर यह सभी terminal sessions पर लागू किया जा सकता है
- Bash:
~/.bashrc में export DO_NOT_TRACK=1
- Zsh:
~/.zshrc में export DO_NOT_TRACK=1
- Fish:
~/.config/fish/config.fish में set -x DO_NOT_TRACK 1
- PowerShell:
$PROFILE में $env:DO_NOT_TRACK = "1"
- Windows CMD: system environment variable में
setx DO_NOT_TRACK 1
software makers और संबंधित standards
- telemetry, analytics, और feature के लिए अनिवार्य नहीं होने वाली network requests करने वाले tools को
DO_NOT_TRACK variable की जाँच करनी चाहिए
- यदि
DO_NOT_TRACK का मान 1 है, तो सभी tracking disable कर देनी चाहिए
- मौजूदा disable करने के तरीकों के साथ इस variable का भी सम्मान किया जाना चाहिए
- telemetry को डिफ़ॉल्ट रूप से चालू रखकर बाद में opt-out देने के बजाय opt-in मॉडल पर भी विचार किया जा सकता है
- no-color.org —
NO_COLOR, color output disable करने के लिए एक standard
- force-color.org —
FORCE_COLOR, color output force करने के लिए एक standard
1 टिप्पणियां
Hacker News की राय
अब यह दिलचस्प लगने लगा है कि अगर डिफ़ॉल्ट रूप से tracking के लिए consent दिया हुआ मान लिया जाए तो भी शायद किसी को हैरानी नहीं होगी
DO_NOT_TRACKजैसा फ़्लैग अच्छा लगता है, लेकिन साथ ही यह ऐसा महसूस कराता है मानो डिफ़ॉल्टCONSENT_TO_TRACK=1हो, जो काफ़ी डरावना हैइंटरनेट इसलिए बड़ा हुआ क्योंकि विज्ञापन और servers द्वारा users से derived information निकालने वाला business model मुख्यधारा बन गया
यह न सुखद है, न निजी, न सुरक्षित, लेकिन ज़्यादातर jurisdictions और industries में यह ग़ैरक़ानूनी भी नहीं है
यह फ़्लैग किसी परीकथा-जैसे आदर्शलोक के लिए नहीं, बल्कि व्यावहारिक और कानूनी रूप से जड़ जमा चुकी वास्तविकता के जवाब के रूप में है
मैं कोई भी जानकारी बाहर नहीं भेजना चाहता और स्वाभाविक रूप से tracked भी नहीं होना चाहता, तो इसे सिर्फ़ एक environment variable से दिखाना ही बेतुका लगता है
जो लोग कहते हैं कि वे track नहीं होना चाहते लेकिन फिर भी यह जानकारी देना पसंद करते हैं, उन्हें समझना मुश्किल है; और जैसे ही आप यह जानकारी देते हैं, आप पहले ही चिह्नित हो चुके होते हैं
मैं variable names हमेशा सकारात्मक रूप में रखना पसंद करता हूँ, तो इस मामले में
ALLOW_TRACKING=0होगाइससे consistency रहती है और double negative से बचा जा सकता है, इसलिए समझना आसान होता है
हालाँकि “DO NOT TRACK” नाम कुछ हद तक स्थापित term हो सकता है
ALLOW_TRACKINGको comma-separated list की तरह लागू किया जा सकता है, ताकि सिर्फ़ allowed applications को ही निर्दिष्ट किया जाएउदाहरण के लिए अगर आप
goऔरbrewके साथ telemetry साझा करना चाहते हैं, लेकिनawsऔर बाक़ियों के साथ नहीं, तोALLOW_TRACKING=go,brewजैसा रख सकते हैंइसकी किस्मत browser के
DNTजैसी होने की संभावना काफ़ी हैफिर भी सभी “do not track” environment variables को एक
do_not_track.envफ़ाइल में इकट्ठा करना बुरा विचार नहीं लगताअगर आप इस पेज के specification का पालन करते हुए इसे एक simple environment variable से संभालना चाहते हैं, तो https://github.com/alloydwhitlock/do-not-track-cli भी है
DNTको डिफ़ॉल्ट रूप से चालू करने को user choice छीनना बताया और उसे नज़रअंदाज़ कर दियाअसल में शायद वे वैसे भी इसे मानने वाले नहीं थे
सबको एक universal चीज़ इस्तेमाल करने के लिए मजबूर करने के बजाय, असली समाधान शायद ऐसा ही कुछ होगा
मैं इसे शुरुआती बिंदु मानकर कुछ बनाने के बारे में सोच रहा हूँ
संदर्भ के लिए, Go telemetry डिफ़ॉल्ट रूप से सिर्फ़ local में store होती है, upload नहीं की जाती: https://go.dev/doc/telemetry
मुझे हैरानी हुई कि Python
transformerslibrary को Hugging Face से संपर्क करने से रोकना सोचे से ज़्यादा मुश्किल हैमैंने
HF_HUB_DISABLE_TELEMETRY=1सेट किया औरWav2Vec2CTCTokenizer.from_pretrainedकॉल करते समयlocal_files_only=Trueभी स्पष्ट रूप से दिया, लेकिन फिर भी validHF_TOKENन होने की warning आती रहीHF_HUB_OFFLINE=1मुझे संयोग से मिला, और उसके बाद ही मुझे कुछ हद तक भरोसा हुआ कि डिस्क सेwav2vec2model लोड करते समय हर बार HF से कनेक्शन नहीं किया जा रहाअगर वह परेशान करने वाली
HF_TOKENwarning न होती, तो शायद मुझे पता भी न चलता कि यह हो रहा हैज़रूरी सब कुछ local में होने पर भी connection की कोशिश में समय बर्बाद न हो, इसके लिए क्या करना है यह लगातार बदलता रहता है
पहले
TRANSFORMERS_OFFLINE,HF_DATASETS_OFFLINEजैसी चीज़ें भी थींयह एक उपयोगी honeypot जैसा लगता है
अगर कोई tool सार्वजनिक रूप से इस specification के support का ऐलान करता है, तो इसका मतलब यह भी हो सकता है कि वह शुरुआत से ही स्पष्ट consent के बिना telemetry इकट्ठा करता है, इसलिए उसे बचकर चलने लायक tool माना जा सकता है
DO_NOT_TRACKsupport का मतलब यह नहीं है कि tracking स्पष्ट consent मॉडल पर नहीं हैउदाहरण के लिए software crash हो सकता है, और crash handler पूछ सकता है कि dump भेजना है या नहीं
अगर
DO_NOT_TRACKमौजूद है, तो crash handler ख़ुद ही disable हो जाएगा, न कोई सवाल होगा, न dumpअगर इसे कुछ हद तक अपनाया गया, तो शायद यह इसी तरह काम करेगा
विज्ञापन की तरह tracking से आर्थिक लाभ कमाने वाले लोग शायद ऐसे option को support नहीं करेंगे
वरना आप बहुत से modern tools इस्तेमाल ही नहीं कर पाएँगे
जब तक कंपनियाँ इस proposal को बहुत धीरे-धीरे implement करती रहें, क्या कहीं आम tools के opt-out methods एक जगह इकट्ठा मिलते हैं?
ऐसा shell module भी संभव लगता है जो इन्हें सेट करे और list को नियमित रूप से update करे
अपना DNS चलाना और problematic domains को blocklist में डालना शायद ज़्यादा आसान होगा
telemetry domains वाली बहुत अच्छी blocklists भी हैं जिनमें लाखों domains हैं। उदाहरण: https://github.com/hagezi/dns-blocklists
जो लोग “standard” की बात करते हैं, वे बस अनौपचारिक विकल्पों की लंबी सूची में एक और चीज़ जोड़ रहे हैं
browser में global tracking ban आम तौर पर इसलिए काम करता है क्योंकि उसका लक्ष्य हर वह website है जिस पर जाया जाए, और advertising के उद्देश्य से की जाने वाली tracking
लेकिन telemetry पूरी तरह अलग समस्या है, इसलिए default blocking एक विकल्प हो सकती है, पर हर tool के लिए इरादा व्यक्त करने के लिए एक ही standard variable का इस्तेमाल व्यवहारिक रूप से कठिन है
कुछ साल पहले भी यही proposal आया था, लेकिन कहीं नहीं पहुँचा
https://web.archive.org/web/20200613155957/https://consoledo...