;(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

Líder dos Entregadores Antifascistas fala sobre o 'futuro sem chefe'

Paulo Galo Lima, líder dos Entregadores Antifascistas - Felipe Larozza/UOL
Paulo Galo Lima, líder dos Entregadores Antifascistas Imagem: Felipe Larozza/UOL

05/09/2020 04h04

Paulo Lima teve seu primeiro registro na Carteira de Trabalho como motociclista, em 2012. Depois de alguns acidentes, descansou a moto e, de lá para cá, já trabalhou como pintor, estoquista de mercado e instalador de internet. Em 2019, sem emprego, viu-se obrigado a voltar para o trabalho de entregador e encontrou um mercado tomado pelos aplicativos de entrega.

Paulo Lima é Galo, líder do movimento dos Entregadores Antifascistas. Para falar do cenário da uberização do emprego, como enxerga o futuro do trabalho e sobre o que defende em seu ativismo, ele participa do terceiro episódio da terceira temporada do podcast "Fora da Curva", apresentado pela jornalista Monique Evelle.

Os oito episódios da nova temporada estarão disponíveis sempre às quintas-feiras.

Por vezes a palavra empreendedorismo é endereçada aos que trabalham em apps. A apresentadora questionou se é possível fazer um formato de empreendedorismo alternativo e se há como ter uma espécie de "linha do meio" da CLT (ouça abaixo a partir de 11:16).

"Linha do meio, mano? A CLT não tá boa, né? (...) tinha que melhorar. Eu queria que a luta dos entregadores Antifascistas fosse uma luta para melhorar a CLT (...) e não para recuperar o conjunto de luta dos trabalhadores, mas sim para agregar, trazer mais coisas boas (...) Até que um dia a gente consiga mostrar aos trabalhadores que, se tem uma coisa que a gente não precisa, é patrão. Existe força de trabalho sem patrão, não existe patrão sem força de trabalho", defendeu ele.

Monique lembrou da iniciativa Despatronados, no Rio de Janeiro, que criou uma cooperativa de entregadores de aplicativo e perguntou se em São Paulo há alguma ideia de fazer algo parecido.

Galo afirmou que o coletivo também faz parte do movimento dos Entregadores Antifascistas e afirmou que há caminhos semelhantes em São Paulo e que a ideia é que não exista apenas uma cooperativa, mas várias. Para ele, a grande questão está em torno da tecnologia: ela precisa ser usada para o que realmente foi criada, que é ceder mais tempo ao trabalhador.

"O problema não está na tecnologia em si. (...) O problema é a gente não saber operar essa tecnologia (...) É uma tecnologia que está sendo utilizada para explorar e oprimir os trabalhadores. Então, vamos aprender a utilizar essa tecnologia e vamos utilizar ela a nosso favor (...) Não é esse o papel da tecnologia? Auxiliar a melhora de vida dos trabalhadores, auxiliar a melhora de vida dos seres humanos? (...) O grande desafio é como fazer isso sem repetir os erros que esses aplicativos aí repetiram (a partir de 17:21).

Paulo Lima (Galo) nasceu e se criou no Jardim Guarau, periferia da zona oeste de São Paulo. O apelido é fruto do modelo da moto esportiva que já pilotou fazendo entregas, uma CBX 750F, conhecida como 7 Galo no Brasil. Politizado, Galo atribui seu conhecimento aos livros que gosta de ler. Ele é casado e pai de uma filha.

Podcasts são programas de áudio que podem ser ouvidos a qualquer hora e lugar — no computador, smartphone ou em outro aparelho com conexão à internet. Os podcasts do UOL estão disponíveis em uol.com.br/podcasts e em todas as plataformas de distribuição. Você pode ouvir Fora da Curva, por exemplo, no Spotify, na Apple Podcasts e no YouTube.