2 puntos por GN⁺ 1 시간 전 | 1 comentarios | Compartir por WhatsApp
  • DO_NOT_TRACK es una propuesta para unificar en una sola variable de entorno las distintas formas de desactivar la telemetría entre herramientas CLI, SDK y frameworks
  • .NET, AWS SAM CLI, Azure CLI, Gatsby, Go, Google Cloud SDK, Homebrew, Netlify CLI y Syncthing desactivan la telemetría con configuraciones o comandos diferentes
  • DO_NOT_TRACK=1 significa rechazar el rastreo publicitario, los reportes de uso, la telemetría, los reportes de fallos y las solicitudes hacia creadores de software o terceros que no sean esenciales para la funcionalidad
  • Los usuarios pueden configurar export DO_NOT_TRACK=1 y agregarlo a la configuración del shell en Bash, Zsh, Fish, PowerShell o Windows CMD para aplicarlo a todas las sesiones de terminal
  • Los creadores de software deben respetar DO_NOT_TRACK junto con los métodos de desactivación existentes, y si vale 1, desactivar todo el rastreo

El problema y la propuesta

  • Muchas herramientas CLI, SDK y frameworks recopilan datos de telemetría por defecto, y cada herramienta tiene una forma distinta de desactivarlos
  • Por ejemplo, .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 y Syncthing usa STNOUPGRADE=1
  • DO_NOT_TRACK se propone como una única variable de entorno estándar que expresa con claridad que el usuario rechaza lo siguiente
    • rastreo publicitario
    • reportes de uso, sean anónimos o no
    • telemetría
    • reportes de fallos
    • solicitudes hacia el creador del software o terceros que no sean esenciales para la funcionalidad
  • El usuario puede expresar que solo quiere software local configurando export DO_NOT_TRACK=1
  • Si se agrega al archivo de configuración del shell, puede aplicarse a todas las sesiones de terminal
    • Bash: ~/.bashrc con export DO_NOT_TRACK=1
    • Zsh: ~/.zshrc con export DO_NOT_TRACK=1
    • Fish: ~/.config/fish/config.fish con set -x DO_NOT_TRACK 1
    • PowerShell: $PROFILE con $env:DO_NOT_TRACK = "1"
    • Windows CMD: setx DO_NOT_TRACK 1 en la variable de entorno del sistema

Creadores de software y estándares relacionados

  • Las herramientas que realizan telemetría, analítica o solicitudes de red no esenciales para la funcionalidad deben comprobar la variable DO_NOT_TRACK
  • Si DO_NOT_TRACK está configurada en 1, deben desactivar todo el rastreo
  • Deben respetar esta variable junto con los métodos de desactivación existentes
  • También se considera hacer que la telemetría sea opt-in, en lugar de activarla por defecto y luego permitir rechazarla
  • no-color.orgNO_COLOR, un estándar para desactivar la salida con color
  • force-color.orgFORCE_COLOR, un estándar para forzar la salida con color

1 comentarios

 
GN⁺ 1 시간 전
Comentarios de Hacker News
  • A estas alturas, resulta interesante que ya nadie se sorprendería aunque el estado predeterminado fuera haber consentido el rastreo
    Una bandera como DO_NOT_TRACK suena bien, pero al mismo tiempo da escalofríos porque se siente como si el valor por defecto fuera CONSENT_TO_TRACK=1

    • ¿En qué momento se supone que no deben rastrearte? Esta bandera se envía cuando mi navegador se conecta a servidores ajenos
      Internet creció porque el modelo de negocio dominante eran los anuncios y los servidores extrayendo información derivada de los usuarios
      No es agradable, ni privado, ni seguro, pero en la mayoría de las jurisdicciones e industrias tampoco es ilegal
      Esta bandera no es una utopía de cuento de hadas, sino una respuesta a una realidad ya consolidada de hecho y de derecho
    • Yo veo problemático este tipo de banderas
      No quiero enviar ninguna información y obviamente tampoco quiero que me rastreen, así que no tiene sentido expresarlo con una sola variable de entorno
      Me cuesta entender a quienes dicen no querer ser rastreados pero están dispuestos a dar esa información; en cuanto la das, ya quedaste marcado
  • Yo siempre prefiero nombres de variables en positivo, así que en este caso sería ALLOW_TRACKING=0
    Eso da consistencia y evita la doble negación, lo que hace más fácil razonar sobre ello
    Aun así, el nombre “DO NOT TRACK” quizá ya esté algo establecido como término

    • ALLOW_TRACKING podría implementarse como una lista separada por comas para indicar solo las aplicaciones permitidas
      Por ejemplo, si quieres compartir telemetría con go y brew, pero no con aws ni con lo demás, podrías usar ALLOW_TRACKING=go,brew
  • Probablemente termine con el mismo destino que DNT en el navegador
    Aun así, no suena mal juntar todas las variables de entorno de “no rastrear” en un solo archivo do_not_track.env

    • Ya existe https://toptout.me y, salvo que quieras crear algo nuevo, resuelve bastantes de estos problemas
      Si quieres manejarlo con una sola variable de entorno simple siguiendo la especificación de esa página, también está https://github.com/alloydwhitlock/do-not-track-cli
    • La industria publicitaria ignoró DNT alegando que Microsoft, al activarlo por defecto, le quitaba la capacidad de elegir al usuario
      En la práctica, probablemente nunca pensaron respetarlo de todos modos
    • Me gusta esta dirección
      Más que exigir que todos usen una sola opción universal, una solución real probablemente vaya por aquí
      Estoy pensando en construir algo como punto de partida
  • Como referencia, la telemetría de Go se guarda solo de forma local por defecto y no se sube: https://go.dev/doc/telemetry

  • Me sorprendió que fuera más difícil de lo esperado evitar que la biblioteca transformers de Python se comunique con Hugging Face
    Configuré HF_HUB_DISABLE_TELEMETRY=1 y también indiqué local_files_only=True al llamar a Wav2Vec2CTCTokenizer.from_pretrained, pero aun así aparecía una advertencia sobre no tener un HF_TOKEN válido
    Solo cuando encontré por casualidad HF_HUB_OFFLINE=1 empecé a tener cierta confianza en que ya no estaba saliendo ninguna conexión hacia HF cada vez que cargaba el modelo wav2vec2 desde disco
    De no ser por esa molesta advertencia de HF_TOKEN, ni siquiera me habría enterado de que esto estaba pasando

    • HF es notoriamente malo para facilitar el trabajo sin conexión
      Incluso hacer que no pierda tiempo intentando conectarse cuando todo lo necesario ya está en local sigue cambiando de una versión a otra
      Antes también existían cosas como TRANSFORMERS_OFFLINE y HF_DATASETS_OFFLINE
    • ¿Una herramienta como Little Snitch ayudaría a detectar esto y encontrar qué cosas hacen comunicación oculta?
  • Parece una trampa de miel útil
    Si una herramienta anuncia públicamente que soporta esta especificación, eso podría significar que de entrada recopila telemetría sin consentimiento explícito, así que sería una herramienta a evitar

    • Que algo soporte DO_NOT_TRACK no significa necesariamente que el rastreo no funcione con consentimiento explícito
      Por ejemplo, a veces un software se bloquea y el manejador de fallos pregunta si quieres enviar el volcado
      Si existe DO_NOT_TRACK, entonces el manejador de fallos mismo queda desactivado y no hay ni pregunta ni volcado
      Si se adopta hasta cierto punto, probablemente funcione más o menos así
      Quienes ganan dinero con el rastreo, como en la publicidad, no van a soportar este tipo de opción
    • La mayoría de los servicios ya recopilan telemetría, y anunciar que la soportan no cambia ese hecho
    • Mejor no mirar demasiado a fondo
      Si lo haces, probablemente ya no vas a poder usar muchas herramientas modernas
  • Mientras esperamos a que las empresas implementen esta propuesta a paso de tortuga, ¿hay algún lugar que reúna en un solo sitio las formas de optar por no participar en herramientas comunes?
    Incluso parece viable algo como un módulo de shell que las configure y actualice periódicamente la lista

  • Probablemente sea más fácil operar tu propio DNS y meter los dominios problemáticos en una lista de bloqueo
    Ya hay buenas listas de bloqueo con millones de dominios de telemetría. Por ejemplo: https://github.com/hagezi/dns-blocklists

    • Mejor aún: no meter esa basura de spyware en tu computadora
    • Esta es la forma correcta de manejarlo
      Quienes andan gritando “estándar” solo están sumando uno más a la larga lista de alternativas no oficiales
  • La prohibición global de rastreo en el navegador suele funcionar porque apunta a todos los sitios web visitados y al rastreo con fines publicitarios
    Pero la telemetría es un problema completamente distinto, así que aunque bloquear por defecto puede ser una opción, usar una sola variable estándar para expresar la intención en todas las herramientas no parece realista

  • Hace años ya hubo una propuesta parecida, pero no llegó a ningún lado
    https://web.archive.org/web/20200613155957/https://consoledo...