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

Surfe 360°

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

'Surfista da vida': histórias de um dos mais influentes dos últimos tempos

Laird Hamilton, em ação numa "bomba" em Teahupoo - reprodução
Laird Hamilton, em ação numa 'bomba' em Teahupoo Imagem: reprodução

Colunista do UOL

30/08/2022 04h00

"Um obsessivo pelas ondas... pelo mar".

"Um dos melhores surfistas da história, apesar de nunca ter disputado um campeonato, que sempre se esforçou demais para ser quem é".

É assim que meu amigo e ótimo jornalista Emanoel Araújo o descreve, numa reportagem de 2019. A matéria é longa, completa... e me fez viajar um pouco nas linhas traçadas por esse californiano que se atreveu nos diversos oceanos.

A relação com o mar desde os primeiros anos... a conexão imediata com o esporte... com as novidades... com as ondas grandes... com o "impossível".

"Laird Hamilton marcou seu nome no surfe graças a uma diversão com uma cadeira equipada com uma aleta. Durante a brincadeira na água, percebeu que o instrumento, que arrastava a massa de água abaixo da superfície, dava mais força e velocidade na onda. Mais uma vez, encontrou uma solução/invenção. 'Um dos grandes problemas que tivemos com o tow-in foi encontrar estes bumps nas ondas, que é a única coisa que você não quer em uma parede de água de 15 metros', disse ele. Assim nasceu o foil, ou quadricóptero, que dá ao surfista o poder de flutuar com uma velocidade e força nunca antes vistas. Para se ter uma ideia do quanto isso pode ser revolucionário, criador e criatura demonstram que é possível ficar em pé em uma onda, por mais de quatro minutos", escreve Emanoel.

No mundo absolutamente global e digital, ainda vale a pena.... e muito... ler e refletir sobre os hábitos das pessoas.

Principalmente sobre aqueles que são verdadeiros influenciadores... em um tempo que qualquer ato é levado como influência, exemplo, ou seja lá como isso chama.

LH tem quase 500 mil seguidores. Pouco? Acho que sim... mas sua 'ação' não mora nas redes sociais.

Por isso, a dica.

O livro "Surfista da Vida" traz a história de Laird Hamilton.

Em pauta, questões sobre a morte, o medo, coração, alma e como tudo isso está conectado.

Nascido em São Francisco, Laird hoje vive em Malibu, também na Califórnia.

Depois de ter construído uma carreira bem sucedida, se tornou especialista em vida saudável e ou a guiar e treinar pessoas.

Ao lado do autor Julian Borra, ele constrói o relato que procura entender sua trajetória, mas também como o esporte mudou sua vida e seu jeito de ver o mundo.

hamilton - divulgação/Jô Ribes Comunicação - divulgação/Jô Ribes Comunicação
'Surfista da vida': a história de vida de Laird Hamilton
Imagem: divulgação/Jô Ribes Comunicação

Entre os vários assuntos abordados, Hamilton explora as relações que criamos ao longo da jornada, resiliência e a importância de dar um o à frente e tomar novos desafios para si.

Quem já leu, destaca o lado emocional e verdadeiro... os sentimentos de Hamilton ditando o rumo da conversa.

O co-autor conduz a narrativa através de longas entrevistas, o ajudando na missão de estruturar a obra.

serviço: 'Surfista da Vida: corpo, alma, coração e vida além do oceano'

Autores: Laird Hamilton (e Julian Borra)

Páginas: 224 / Preço de capa: R$ 59 / Editora Gaia

por @thiago_blum / @surf360_