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

Universa Talks 2021: Tudo o que rolou no evento dedicado a empreendedorismo

De Universa

29/09/2021 04h00

Nesta terça-feira (28), UOL realizou a edição 2021 do evento sobre empreendedorismo feminino Universa Talks. Com a participação de nomes como Camila Coutinho (blogueira e CEO da GE Beauty), Adriana Barbosa (Feira Preta), Juliana De Mari (Prosa Coaching), Dani Arrais (Fala que Eu Não te Escuto, Impostora), Monique Evelle (consultora de inovação e estrategista criativa, fundadora da Inventivos) e Mafoane Odara (líder em recursos humanos para América Latina no Facebook), os painéis reuniram empresárias de diferentes ramos para compartilharem suas histórias pessoais e profissionais.

As convidadas falaram também sobre as dificuldades em períodos de crise, falências, dívidas e como não desistir pode ser a chave para o sucesso, além de dar dicas e ideias para empreender melhor —e com mais resultados.

No vídeo acima, você assiste à íntegra do evento. Abaixo, você pode conferir cada exibido (é só clicar no link que está no nome do para assisti-lo no YouTube):

ABERTURA: De blogueira a CEO, Camila Coutinho dá dicas para empreender pós-pandemia

1: O Mapa da Mina - Os Primeiros os para Fazer Acontecer

Com Adriana Barbosa (criadora da Feira Preta), Stephanie Fleury (fundadora da DindDin) e Ludmila Hastenreiter (fundadora da Empoderamento Contábil). Mediação de Cris Guterres, colunista de Universa.

2: Empresárias Negras - A Tradição que Vira Negócio

Com Caroline Moreira (criadora do Negras Plurais), Gabriela Chaves (economista, fundadora da NoFront Empoderamento Financeiro), Michelle Fernandes (fundadora da Boutique de Krioula). Mediação de Xan Ravelli, colunista de Universa.

3: Síndrome da Impostora - A Voz que Nos Paralisa

Com Juliana De Mari (jornalista e fundadora da Prosa Coaching), Dani Arrais (Jornalista e criadora do Fala que Eu Não te Escuto, Impostora) e Monique Evelle (consultora de inovação e estrategista criativa, fundadora da Inventivos). Mediação de Débora Miranda, editora-chefe de Universa.

4: O Prazer é Todo Delas - O Mercado Erótico em Ascensão

Com Izabela Starling (à frente da Panty Nova, loja de produtos eróticos), Chris Marcello (fundadora da Sophie Sensual Feelings, empresa de cosméticos sensuais) e Marília Ponte (fundadora da Lilit Sextech). Mediação de Bárbara dos Anjos, editora de Universa e apresentadora do podcast Sexoterapia.

5: Rede de Apoio - Criando Pontes para as Mulheres

Com Mafoane Odara (líder em recursos humanos para América Latina no Facebook), Marina Vaz (fundadora da Scooto) e Amanda Momente (cofundadora da Wondersize Moda Esportiva). Mediação de Brenda Fucuta, colunista de Universa.