;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Funcionários da Amazon são advertidos sobre críticas a política ambiental da empresa

Entregador prepara pacotes com produtos da Amazon no centro de distribuição - Ina Fassbender/AFP
Entregador prepara pacotes com produtos da Amazon no centro de distribuição Imagem: Ina Fassbender/AFP

Por Gregory Scruggs

Seattle - (Thomson Reuters Foundation)

06/01/2020 20h34

Funcionários da Amazon.com, que exigiram publicamente ações mais agressivas da empresa para combater mudanças climáticas, foram informados de que violaram a política da empresa de comércio eletrônico, e a companhia disse que mais infrações podem terminar em demissões, segundo um grupo ativista dos funcionários.

Os avisos por violações de uma política da empresa de falar com a mídia podem ser vistos como um exemplo de retaliação corporativa pelo ativismo climático dos funcionários, disse um analista de negócios - mas um especialista em relações públicas disse que essas restrições são uma política corporativa comum.

Uma porta-voz da Amazon afirmou que as regras da empresa, que exigem aprovação prévia dos funcionários que desejam falar publicamente sobre a empresa para a mídia, não são novas e são similares às de outras grandes companhias.

Um representante do grupo Amazon Employees for Climate Justice disse à Thomson Reuters Foundation que quatro de seus líderes haviam tido reuniões confidenciais com as divisões jurídica e de recursos humanos da gigante online em novembro.

As reuniões ocorreram na sequência de protestos climáticos globais recordes em setembro, que viram milhões de pessoas em mais de 160 países saírem às ruas.

Mais de 3 mil trabalhadores de tecnologia no bairro de South Lake Union em Seattle - sede da Amazon.com e dos principais escritórios de satélite do Google, Facebook e Microsoft - se uniram para protestar contra o apoio que seus empregadores fornecem às empresas de combustíveis fósseis.

Na véspera da greve climática, a Amazon prometeu tornar suas operações neutras em carbono até 2040. Mas alguns funcionários disseram que a empresa deveria ir ainda mais longe e reduzir os serviços de computação na web e em nuvem que presta às empresas de petróleo e gás.

O presidente-executivo da Amazon, Jeff Bezos, disse que sua empresa continuará trabalhando com empresas de energia, observando que "pedir às empresas de petróleo e energia que façam essa transição (de energia) com ferramentas ruins não é uma boa ideia e não faremos isso".

Em outubro, o Amazon Employees for Climate Justice deu uma declaração ao Washington Post, assinada por dois funcionários, criticando a empresa por "querer lucrar em negócios que contribuem diretamente para a catástrofe climática".

Em novembro, após responder a perguntas de advogados corporativos e representantes de recursos humanos, os dois funcionários foram avisados ??pelo advogado Eric Sjoding de que haviam violado a política de comunicação atualizada da empresa falando à mídia sobre os negócios da Amazon sem aprovação.

Mas eles foram informados de que outras violações da política poderiam resultar em demissão, de acordo com uma comunicação interna à qual a Thomson Reuters Foundation teve o.

A empresa publicou uma nova política de comunicação que abrange entrevistas com a mídia, discursos públicos e uso de mídias sociais em setembro.

"Como em qualquer política da empresa, os funcionários podem receber uma notificação de nossa equipe de RH se soubermos de um caso em que uma política não está sendo seguida", disse uma porta-voz da Amazon.

Em maio, mais de 8.700 funcionários da Amazon apoiaram uma proposta de resolução para os acionistas, exigindo que a empresa relate como planeja lidar com as mudanças climáticas.

Mas a proposta recebeu menos de 30% de aprovação na assembleia geral da Amazon.