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

Deu Tilt #20: Como pandemia bagunçou mercado de chips e agravou a crise

Thiago Varella

Colaboração para Tilt

23/06/2021 04h00

Os chips não estão mais apenas nos celulares e nos computadores, mas também nos carros, geladeiras e tantos outros produtos do nosso dia a dia. O problema é que o componente está em falta no mercado. E uma das culpadas para isso estar acontecendo é a pandemia de covid-19.

Para falar mais sobre o tema, o 20º episódio do podcast Deu Tilt convidou Helder Galeti, professor do departamento de engenharia elétrica da UFSCar (Universidade Federal de São Carlos), e Reinaldo Sakis, gerente de pesquisa da consultoria IDC Brasil.

Ouça o episódio na íntegra no player acima.

Sakis explicou que o mercado estava preparado para uma determinada demanda de chips. A tendência de consumo de computadores, tablets e celulares vinha caindo no mundo, mesmo em mercados grandes e emergentes como o chinês. O problema foi que a pandemia de covid-19 alterou todo o panorama (ouça a partir de 05:57).

"O home office e o home schooling fizeram a demanda aumentar. As pessoas precisam de mais de um computador por casa. Isso ocorreu praticamente no mundo todo. A gente tinha uma linha que era estável pros próximos anos e, de repente, ela deu um salto. Isso aconteceu com celulares, por causa do 5G, e computadores e tablets por causa da pandemia que precisou de um novo momento de uso", explicou.

As fábricas de chips já estavam dimensionadas para um mercado de um tamanho, com uma perspectiva de que não fosse crescer muito nos próximos anos, e, de repente, houve uma grande mudança no cenário causada, principalmente, pela pandemia. E agora, alguns produtos estão ficando mais caros para o consumidor final (ouça a partir de 08:55).

"A gente notou, desde o início do ano ado, os custos de computadores, celulares, todos estão sofrendo aumentos sucessivos de uma forma muito mais forte do final do ano ado para agora", disse Sakis.

A demanda pelo produto é grande, até porque os chips não estão somente nos nossos computadores e celulares. Carros e eletrodomésticos, como geladeiras, também contam, muitas vezes, com esses pequenos componentes (ouça a partir de 11:00).

"Tanto nos carros quanto naqueles produtos com valor agregado maior e que são cada vez mais demandados para interação e entretenimento, você vê o efeito, mas a causa está num nível microscópico que as pessoas não percebem", disse Galeti.

Os podcasts do UOL estão disponíveis em uol.com.br/podcasts e em todas as plataformas de distribuição de áudio. Você pode ouvir "Deu Tilt", por exemplo, no Spotify, na Apple Podcasts e no YouTube.