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

Após ser demitido da Globo, Fabio Turci emociona com depoimento

Colaboração para Splash, em São Paulo

05/04/2023 23h23

O jornalista Fabio Turci foi demitido da Globo ao lado de outros profissionais. Nas redes redes sociais, ele, que atuou como correspondente em Nova York, EUA, por cinco anos, se pronunciou sobre o desligamento da emissora.

"ERA UMA VEZ um adolescente que foi estudar jornalismo e sonhava mudar o mundo.

De início, a universidade mudou o mundo do adolescente. Quanta gente diferente existia fora da sua bolha! Quantos olhares, quantas peles, quantas ideias diversas! Foi como fazer dois cursos ao mesmo tempo: um, dentro da sala de aula, de jornalismo; outro, fora da sala, na convivência diária, um curso de gente!

Aquele adolescente, que amava escrever, queria ser repórter de jornal escrito e não tinha o menor traquejo com câmera nem o menor desejo de trabalhar em televisão, foi parar... Numa TV!

Meio levado que foi pelos acontecimentos, ele resolveu navegar ali. Primeiro, atrás das câmeras mas, logo, pulou pra frente delas. Trocou Bauru por São José dos Campos. Trocou São José por São Paulo.

Ah, São Paulo! Quer ver gente diferente de você? Vem pra São Paulo! Gente!

E trocou São Paulo por Nova York. Gente diferente de você? Nova York também tem. Muita.

E foi lá, olhando o próprio país de fora, que ele arregalou os olhos e enxergou mais. Enxergou o que acontece com parte dessa gente, mas não acontece com outra parte. Enxergou que o mundo é diferente dependendo do tipo de gente que se é. O mundo pode ser muito menor, sem horizonte, sem ar. "I can't breathe".

E assim, enxergando o que não enxergava antes, voltou ao Brasil, voltou a São Paulo. E quis ajudar a abrir outros olhos. Sim, o jornalismo permite isso.

Lembra daqueles dois cursos na faculdade? Os anos ensinaram que era tudo um só. Porque jornalismo e gente são indissociáveis. Ou deveriam ser.

Hoje, aquele adolescente é um quarentão que acaba de sair da frente das câmeras. A televisão que apareceu em seu caminho lá atrás lhe deu licença, hoje, pra continuar. Por onde? Sei lá. O mundo mudou muito. Não é uma questão de não ter pra onde ir. É uma questão de escolher qual caminho tentar.

Mudou tudo, mas uma coisa não mudou: ele ainda sonha mudar o mundo", escreveu ele em uma publicação feita no Instagram.

Confira:

Ao portal Notícias da TV, a Globo enviou um comunicado sobre a onda de demissões:

"A Globo, assim como as demais empresas de referência do mercado, tem um compromisso permanente com a busca de eficiência e evolução, mas lamenta quando despede de profissionais que ajudaram a escrever e a contar a sua história. Isso, no entanto, faz parte da dinâmica de qualquer empresa. Os resultados da Globo refletem a boa performance do conjunto das suas operações e uma constante avaliação do cenário econômico do país e dos negócios. Como parte do processo de transformação pela qual vem ando nos últimos anos e alinhada à sua estratégia, a empresa mantém a disciplina de custos e investimentos em iniciativas importantes de crescimento".