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

Navios de cruzeiro parados correm risco de enferrujar

Nesta semana, um grupo de 15 navios da Carnival Cruise Line, Royal Caribbean e Celebrity Cruises estava estacionado perto das Bahamas - Getty Images
Nesta semana, um grupo de 15 navios da Carnival Cruise Line, Royal Caribbean e Celebrity Cruises estava estacionado perto das Bahamas Imagem: Getty Images

Fran Golden

08/07/2020 16h01

Centenas de pessoas fizeram fila há algumas semanas às margens do Rio Clyde, em Glasgow, para a rara visão de um pequeno navio de cruzeiro de luxo navegando rio acima - praticamente para o coração da cidade. O Azamara Journey emocionou espectadores socialmente distanciados ao tocar seu apito, normalmente um anúncio de celebração animada. Mas, desta vez, não havia ninguém para acenar no convés do navio de 700 ageiros, além das duas dezenas de membros da minúscula tripulação. Afinal, não era uma chegada de comemoração: era uma embarcação na UTI, como qualquer outro navio que enfrenta o brutal impacto da pandemia.

Desde meados de março, apenas um pequeno número dos cerca de 400 navios de cruzeiro ao redor do mundo conseguiu aceitar ageiros - todos em itinerários totalmente locais. Algumas dezenas estão navegando pelo mundo com objetivos específicos, repatriando membros da tripulação de todos os cantos do globo. O restante está estacionado no purgatório de navios de cruzeiro, sem poder navegar comercialmente no futuro próximo. Nos EUA, o setor concordou em não retomar as operações pelo menos até 15 de setembro.

O problema para muitas linhas de cruzeiro? A ociosidade durante a pandemia não é apenas ruim para o lucro, é uma potencial sentença de morte para os ativos mais caros: os próprios navios. Questões mecânicas, riscos de furacões e obstáculos regulatórios que podem configurar crimes: um atoleiro que a indústria nunca havia enfrentado nessa escala anteriormente.

A despesa é impressionante. Em recente documento enviado à Sec, a Carnival - cujas nove marcas formam a maior empresa de cruzeiros do mundo - indicou que suas despesas correntes com navios e istrativas somariam US$ 250 milhões por mês quando todos os navios estivessem parados. A empresa diz que não tem como prever quando os cruzeiros serão retomados. Esse é um item de longo prazo em um balanço que registrou US$ 4,4 bilhões em perdas somente no segundo trimestre.

Fila de navios

Como no caso dos aviões, o primeiro problema com a manutenção de um navio de cruzeiro ocioso é simplesmente encontrar um lugar para estacioná-lo. Cerca de 16 mil aviões foram aterrados na pandemia, escondidos em locais secos e à prova de ferrugem que variam de hangares e pistas de aeroportos a cemitérios no deserto. Os navios igualmente tentam encontrar as condições certas para enfrentar a tempestade.

Não há espaço suficiente nos portos para todos navios atracarem de uma só vez, especialmente para navios enormes que normalmente transportam até 8.880 ageiros e tripulantes. Isso explica os sons comemorativos do regresso à casa do Azamara Journey em Glasgow (o navio atracou em um porto de carga em vez de seu habitual cais de cruzeiro, fora da cidade). Embarcações com menos sorte não tiveram escolha a não ser ancorar no mar, parando ocasionalmente no porto mais próximo para obter suprimentos e combustível.

Nesta semana, um grupo de 15 navios da Carnival Cruise Line, Royal Caribbean e Celebrity Cruises estava estacionado perto das Bahamas, de acordo com o Cruisemapper.com, um site de rastreamento de navios. O Symphony of the Seas, o maior navio de cruzeiro do mundo com capacidade para 6.680 ageiros, estava na costa da República Dominicana.

"Os navios de cruzeiro modernos não são projetados ou construídos para serem desligados e deixados em um píer", diz Monty Mathisen, editor-gerente da Cruise Industry News. "Estamos falando sobre grandes quantidades de maquinaria, eletrônicos e até aço que precisam de manutenção, verificação e trabalho preventivo."