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

Danilo Lavieri

Palmeiras mantém prática retrógrada de convocar eleição para vitalícios

Maurício Galiotte, presidente do Palmeiras, e Seraphim Del Grande, presidente do conselho deliberativo - Fábio Menotti/Ag. Palmeiras/Divulgação
Maurício Galiotte, presidente do Palmeiras, e Seraphim Del Grande, presidente do conselho deliberativo Imagem: Fábio Menotti/Ag. Palmeiras/Divulgação

Colunista do UOL

23/11/2020 11h08

Receba os novos posts desta coluna no seu e-mail

Email inválido

O Palmeiras vai manter a prática retrógrada de convocar eleições para conselheiro vitalício. O clube anunciou que o pleito ocorrerá no dia 7 de dezembro, às 19h, na sede social do Alviverde.

Quem defende a medida se apoia no estatuto do clube. O presidente do Conselho Deliberativo, Seraphim Del Grande, explicou ao blog que resolveu atender a pedidos de "diversas" pessoas.

"Esse foi um pedido de diversos conselheiros e, como este ano não foi realizada nenhuma reunião para eleição de vitalícios, decidi fazer a convocação de acordo com o estatuto da Sociedade Esportiva Palmeiras. Temos 19 vagas em aberto", afirmou Seraphim ao blog.

A prática de tornar alguém vitalício no poder é atrasada e mantém o poder concentrado nas mãos dos mesmos. Ela vai contra a oxigenação no poder, fundamental em todas as esferas. É assim que se formam grupos que ficarão no poder por muito tempo, tendo ele boas ideias ou não.

Recentemente, o Alviverde conseguiu uma vitória importante para a modernização do seu estatuto que foi o voto do associado para eleger o presidente, tirando essa decisão apenas das mãos dos conselheiros. O fim dos vitalícios, no entanto, foi uma mudança que ainda não foi alcançada.

Há diversos conselheiros e associados que defendem essa mudança, houve maioria na última eleição realizada para mudar essa prática, mas não os dois terços exigidos pelo estatuto para alteração das regras.

Na prática, isso significa que Del Grande convocou as eleições mesmo contra a vontade da maioria do clube entre sócios e conselheiros. Mas como o estatuto não foi alterado até hoje, ele está dentro das regras do jogo.