2 pontos por GN⁺ 1 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • DO_NOT_TRACK é uma proposta para unificar em uma única variável de ambiente as diferentes formas de desativar telemetria usadas por cada ferramenta CLI, SDK e framework
  • .NET, AWS SAM CLI, Azure CLI, Gatsby, Go, Google Cloud SDK, Homebrew, Netlify CLI e Syncthing desativam a telemetria usando configurações ou comandos diferentes
  • DO_NOT_TRACK=1 significa recusar rastreamento publicitário, relatórios de uso, telemetria, relatórios de falha e requisições ao criador do software ou a terceiros que não sejam essenciais para o funcionamento
  • O usuário pode definir export DO_NOT_TRACK=1 e adicionar isso às configurações de shell no Bash, Zsh, Fish, PowerShell e Windows CMD para aplicar a todas as sessões de terminal
  • Criadores de software devem respeitar DO_NOT_TRACK e, se ele estiver definido como 1, desativar todo o rastreamento junto com os métodos de desativação já existentes

Problema e proposta

  • Muitas ferramentas CLI, SDKs e frameworks coletam dados de telemetria por padrão, e cada ferramenta tem um método diferente para desativar isso
  • Por exemplo, .NET usa DOTNET_CLI_TELEMETRY_OPTOUT=1, AWS SAM CLI usa SAM_CLI_TELEMETRY=0, Azure CLI usa AZURE_CORE_COLLECT_TELEMETRY=0, Gatsby usa GATSBY_TELEMETRY_DISABLED=1, Go usa go telemetry off, Google Cloud SDK usa gcloud config set disable_usage_reporting true, Homebrew usa HOMEBREW_NO_ANALYTICS=1, Netlify CLI usa netlify --telemetry-disable e Syncthing usa STNOUPGRADE=1
  • DO_NOT_TRACK é proposto como uma única variável de ambiente padrão para expressar claramente que o usuário recusa os seguintes itens
    • rastreamento publicitário
    • relatórios de uso, anônimos ou não
    • telemetria
    • relatórios de falha
    • requisições ao criador do software ou a terceiros que não sejam essenciais para o funcionamento
  • O usuário pode expressar que deseja apenas software local definindo export DO_NOT_TRACK=1
  • Ao adicionar isso ao arquivo de configuração do shell, é possível aplicar a todas as sessões de terminal
    • Bash: adicionar export DO_NOT_TRACK=1 a ~/.bashrc
    • Zsh: adicionar export DO_NOT_TRACK=1 a ~/.zshrc
    • Fish: adicionar set -x DO_NOT_TRACK 1 a ~/.config/fish/config.fish
    • PowerShell: adicionar $env:DO_NOT_TRACK = "1" a $PROFILE
    • Windows CMD: usar setx DO_NOT_TRACK 1 na variável de ambiente do sistema

Criadores de software e padrões relacionados

  • Ferramentas que executam telemetria, analytics ou requisições de rede não essenciais para o funcionamento devem verificar a variável DO_NOT_TRACK
  • Se DO_NOT_TRACK estiver definido como 1, todo o rastreamento deve ser desativado
  • Essa variável deve ser respeitada junto com os métodos de desativação já existentes
  • Também vale considerar mudar do modelo de ativação por padrão com opção de recusa para um modelo de opt-in
  • no-color.orgNO_COLOR, padrão para desativar saída colorida
  • force-color.orgFORCE_COLOR, padrão para forçar saída colorida

1 comentários

 
GN⁺ 1 시간 전
Comentários do Hacker News
  • A esta altura, é curioso que ninguém mais se surpreenderia se o padrão fosse consentir com rastreamento
    Um sinalizador como DO_NOT_TRACK parece bom, mas ao mesmo tempo dá arrepios, porque soa como se o padrão fosse CONSENT_TO_TRACK=1

    • Mas em que momento você está dizendo para não rastrear? Esse sinalizador é enviado quando meu navegador se conecta ao servidor de outra pessoa
      A internet cresceu porque o modelo de negócios dominante era publicidade e servidores extraindo informações derivadas dos usuários
      Não é divertido, nem privado, nem seguro, mas na maioria das jurisdições e setores também não é ilegal
      Esse sinalizador não é um ideal de conto de fadas, e sim uma resposta a uma realidade consolidada na prática e na lei
    • Acho que a própria existência desse tipo de sinalizador é problemática
      Não quero enviar informação nenhuma e, obviamente, também não quero ser rastreado, então não faz sentido indicar isso com uma variável de ambiente
      É difícil entender quem diz não querer ser rastreado, mas gosta de fornecer esse tipo de informação; no instante em que você a fornece, já ficou marcado
  • Eu sempre prefiro nomes de variáveis em forma afirmativa, então nesse caso seria ALLOW_TRACKING=0
    Isso traz consistência e evita dupla negação, o que facilita o raciocínio
    Dito isso, “DO NOT TRACK” talvez já seja um termo relativamente estabelecido

    • Também daria para implementar ALLOW_TRACKING como uma lista separada por vírgulas, permitindo especificar só os aplicativos autorizados
      Por exemplo, se eu quiser compartilhar telemetria com go e brew, mas não com aws nem com o resto, poderia usar ALLOW_TRACKING=go,brew
  • É bem provável que tenha o mesmo destino do DNT dos navegadores
    Ainda assim, não parece má ideia reunir todas as variáveis de ambiente de “não rastrear” em um único arquivo do_not_track.env

    • O https://toptout.me já existe e, a menos que você queira criar algo novo, ele já resolve boa parte desse problema
      Se você quiser seguir a especificação dessa página e tratar isso com uma única variável de ambiente simples, também existe https://github.com/alloydwhitlock/do-not-track-cli
    • O setor de publicidade ignorou o DNT alegando que a Microsoft o ativou por padrão e, com isso, tirou a liberdade de escolha dos usuários
      Na prática, provavelmente eles nunca tiveram intenção de respeitá-lo de qualquer forma
    • Gosto dessa direção
      Em vez de exigir que se use uma única solução universal, o caminho real talvez seja algo desse tipo
      Estou pensando em criar alguma coisa como ponto de partida
  • Só para constar, a telemetria do Go por padrão é armazenada apenas localmente e não é enviada: https://go.dev/doc/telemetry

  • Fiquei surpreso com como é mais difícil do que parece impedir que a biblioteca Python transformers se comunique com o Hugging Face
    Configurei HF_HUB_DISABLE_TELEMETRY=1 e também especifiquei local_files_only=True ao chamar Wav2Vec2CTCTokenizer.from_pretrained, mas mesmo assim aparecia um aviso dizendo que não havia um HF_TOKEN válido
    Só depois de encontrar por acaso HF_HUB_OFFLINE=1 é que passei a ter alguma confiança de que não haveria conexão com a HF toda vez que eu carregasse um modelo wav2vec2 do disco
    Se não fosse por aquele aviso irritante sobre HF_TOKEN, eu talvez nem soubesse que isso estava acontecendo

    • A HF tem fama de dificultar o trabalho offline
      Mesmo algo tão básico quanto evitar perda de tempo tentando se conectar quando tudo de que você precisa já está localmente muda o tempo todo na forma de ser tratado
      Antes também existiam coisas como TRANSFORMERS_OFFLINE e HF_DATASETS_OFFLINE
    • Será que uma ferramenta como o Little Snitch ajudaria a detectar isso e descobrir quem está fazendo comunicação oculta?
  • Parece um honeypot útil
    Se uma ferramenta anuncia publicamente que oferece suporte a essa especificação, isso pode ser visto como sinal de que ela coleta telemetria sem consentimento explícito para começo de conversa, então talvez seja uma ferramenta a evitar

    • Dar suporte a DO_NOT_TRACK não significa necessariamente que o rastreamento não funcione por consentimento explícito
      Por exemplo, às vezes um software trava e o manipulador de falhas pergunta se deve enviar um dump
      Se DO_NOT_TRACK estiver presente, o próprio manipulador de falhas pode ser desativado, sem pergunta e sem dump
      Se houver alguma adoção, provavelmente funcionará mais ou menos assim
      Quem ganha dinheiro com rastreamento, como no caso da publicidade, provavelmente não vai oferecer suporte a esse tipo de opção
    • A maioria dos serviços já coleta telemetria, e anunciar suporte não muda esse fato
    • É melhor não olhar muito a fundo
      Senão você não vai conseguir usar muitas ferramentas modernas
  • Enquanto esperamos as empresas implementarem essa proposta bem devagar, existe algum lugar que reúna em um só ponto as formas de opt-out das ferramentas mais comuns?
    Parece até possível fazer um módulo de shell que configure tudo isso e atualize a lista periodicamente

  • Provavelmente é mais fácil manter seu próprio DNS e colocar os domínios problemáticos numa blocklist
    Há boas listas de bloqueio com milhões de domínios de telemetria. Ex.: https://github.com/hagezi/dns-blocklists

    • Melhor ainda é nem deixar esse tipo de spyware lixo entrar no computador
    • Essa é a forma correta de lidar com isso
      Quem fica falando em “padrão” só está acrescentando mais um item a uma longa lista de alternativas informais
  • O bloqueio global de rastreamento no navegador geralmente funciona porque se aplica a todos os sites visitados e ao rastreamento para fins publicitários
    Mas telemetria é um problema completamente diferente, então o bloqueio por padrão pode até ser uma opção, porém é difícil, na prática, usar uma única variável padrão para expressar a intenção em todas as ferramentas

  • Houve a mesma proposta alguns anos atrás, mas não levou a lugar nenhum
    https://web.archive.org/web/20200613155957/https://consoledo...