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

De WhatsApp a livro: mulheres mostram força ao dividir histórias de sucesso

De Universa, em São Paulo

17/05/2023 04h00Atualizada em 17/05/2023 15h11

"Saí de Natal (RN) aos 14 anos de idade para apostar no sonho de ser jogadora de vôlei e morar sozinha no Rio de Janeiro. As dificuldades são, na verdade, oportunidades que vão nos tornando cada vez mais fortes. Eu não cheguei onde cheguei por causa das vitórias. Foram as derrotas que me fizeram mais forte e resiliente."

Histórias como a de Virna, jogadora de vôlei, preenchem os capítulos do segundo volume do livro "Uma Sobe e Puxa a Outra" que será lançado hoje, 17 de maio, em evento em São Paulo.

Os dois volumes reúnem 113 autoras: executivas C-suite, superintendentes, empresárias, jornalistas, influencers e celebridades. São mulheres de diferentes áreas de atuação, idades, origens, raças e localidades que atuam como catalisadoras de projetos de inclusão e transformação para que as novas gerações possam ter um caminho mais justo.

As autoras relatam agens de superação de assédios, doenças, preconceitos, etarismo, contam como fundaram organizações, falam de medos, dão dicas de como puxar e serem puxadas, de como o sistema de network impulsiona suas vidas e, principalmente, contam as conquistas mostrando caminhos possíveis.

"Foi um divisor de águas sair do armário na minha vida pessoal e, principalmente, profissional. Isso me permitiu ser uma líder melhor, inspirar mais e mais pessoas", contou Bruna Infurna, que é líder de soluções de marketing para a América Latina no Linkedin, em um dos capítulos do livro.

Para ela, fazer parte desse grupo é estar cercada de mulheres que fazem a diferença, "que não se importam só com a própria carreira, mas com a de todas ao seu redor".

Livros Uma Sobe e Puxa as Outras, volumes 1 e 2 - Divulgação - Divulgação
O segundo volume será lançado em evento em São Paulo; o volume 1 é sucesso de vendas
Imagem: Divulgação

"Como dizem, é preciso uma vila para criar um humano. Temos nossa comunidade-vila aqui" conta Natasha de Caiado Castro. O projeto do livro começou num grupo de WhatsApp capitaneado por ela, que é fundadora da Wish, empresa de eventos internacionais.

Um rolê pelos contatos do grupo (que já soma 365 nomes) e pelos índices dos livros revela algumas das mais poderosas mulheres do cenário de negócios brasileiro: Manzar Feres, a mais alta executiva feminina do grupo Globo; a sócia e cofundadora do Amor aos Pedaços, Silvana Abramovay, e heads de empresas de projeção global, como Ana Fontes, Ana Cortat, Glaucimar Peticov, Cila Schulman, Patricia Muratori, Dilma Campos, Patricia Marins, Sil Curiati, Ingrid Barth, Gisele Perasolo Alves; a atriz que estreia na novela da Globo Maria Gal; e a atriz e apresentadora Maria Paula. Mais do que fazer networking, a ideia é criar uma rede de sororidade.

SERVIÇO
Lançamento em São Paulo: Uma Sobe e Puxa a Outra - volume 2
Local: Artefacto Beach & Country (Av. Brasil, 1.823, Jardim América), em São Paulo/SP
Data: 17 de maio | Horário: a partir das 19h | Aberto ao público

O UOL pode receber uma parcela das vendas pelos links recomendados neste conteúdo.