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

Hollywood, decoração e olheiro de futebol: veja planos de Russomanno em SP

6 out. 2020 - Fábio Vieira/Fotorua/Estadão Conteúdo
Imagem: 6 out. 2020 - Fábio Vieira/Fotorua/Estadão Conteúdo

Nathan Lopes

Do UOL, em São Paulo

13/10/2020 04h00

No plano de governo que registrou na Justiça Eleitoral, o candidato do Republicanos a prefeito de São Paulo, Celso Russomanno, apresentou ideias que vão de convênios com estúdios de Hollywood até a busca por jogadores de futebol na periferia. Entre elas, porém, não consta a do Bilhete Único proporcional, proposta que levou à queda de Russomanno perante o eleitorado em sua primeira disputa pelo cargo, em 2012.

A partir de hoje, o UOL mostra um resumo dos planos de governo apresentados à Justiça Eleitoral pelos candidatos a prefeito. A ordem de apresentação dos resumos seguirá a posição do político na primeira pesquisa divulgada pelo Datafolha. A íntegra do documento do candidato do Republicanos pode ser lida clicando neste link.

No programa de governo, que conta com 45 páginas, Russomanno apresentou suas ideias em 11 tópicos. Ao longo da semana ada, o UOL pediu para falar com um representante do plano de governo, mas não foi atendido. A reportagem também chegou a enviar perguntas para a coordenação do programa de Russomanno, mas não recebeu respostas.

O plano tem um ponto polêmico sobre a área de transportes por ter um trecho quase igual ao edital de concessão dos terminais de ônibus da gestão de Bruno Covas (PSDB), candidato à reeleição. Russomanno minimizou a situação.

Zeladoria com sem-teto

Na área de assistência social, ele sugeriu a criação de uma "coordenadoria intersecretarial", com secretarias e a sociedade civil, para a discussão de políticas públicas da população em situação de rua. As secretarias, como as de Saúde, Educação e Trabalho, também teriam o que ele batizou de "núcleo de escuta" dos moradores de rua "com o objetivo de um novo olhar, principalmente no que diz respeito ao sofrimento pessoal".

O plano de governo não entra em detalhes sobre as ações, focando mais em apresentar ideias, como um "programa de zeladoria com a população em situação de rua integrada entre as diversas pastas da istração". Não fica claro como seria esse programa nem se os sem-teto seriam remunerados.

Parceria com Hollywood

Na área cultural, Russomanno diz querer transformar a cidade em "um centro de produção de audiovisual, aumentando o número de produções de cinema, TV, streaming e outras mídias filmadas em São Paulo para 2.000 produções/ano" até 2024. Nesse item, ele também fala em "convênios com grandes produtoras de séries, filmes e estúdios (em especial de Hollywood) para gravações na cidade de São Paulo". Sem mais detalhes, contudo.

O candidato também pretende instalar "oficinas de música, cineclubes e teatros nos espaços públicos mantidos pelo município, principalmente nas escolas municipais de ensino fundamental da cidade". Sobre este ponto, ele apresenta um cronograma: em "10% das escolas municipais irão ter espaços culturais no primeiro ano de governo". O número, promete, chegaria a 30% até 2024.

Russomanno também prevê a criação de concursos de decoração para a cidade para datas comemorativas. "Organizar concursos regionais de decorações e promoções, em parceria com as associações comerciais e associações de shoppings, nas principais datas de eventos comerciais da cidade: Dia dos Pais, Dia das Mães, Dia dos Namorados, Páscoa, Natal etc.", traz o programa. O texto não diz qual seria a participação da prefeitura nos concursos.

Olheiros

No esporte, o candidato pretende criar jogos olímpicos para a terceira idade, crianças e adolescentes. A proposta, porém, fala apenas em instituir um calendário para isso.

Outra ideia sem explicação é sobre implantar um esquema de olheiros de jogadores de futebol na periferia. "Construir parceria com a Federação Paulista de Futebol para localizar e acolher jovens talentos nas periferias."

Russomanno também fala no programa "Pode Entrar", que garantiria "a produção de unidades habitacionais populares para famílias com renda bruta de até três salários mínimos, que não possuem o ao crédito imobiliário". Já famílias com renda de até seis salários teriam um subsídio de R$ 40 mil para adquirir seu imóvel. Detalhes do projeto não são mencionados.

Também é citado o projeto "O Médico É Meu". No plano, só teve relatada a opinião de que "o cidadão precisa de uma referência em seu atendimento de saúde, organizando e referenciando os serviços necessários" e que "o apoio do agente comunitário é fundamental, pelo seu papel próximo do indivíduo e sua família, conhecendo suas características e a maioria de suas necessidades".

"A orientação para o direcionamento de seu tratamento otimiza todos processos e leva a significativa economia aos cofres públicos." O texto, porém, não diz como seria a dinâmica desse projeto.

Mais propostas são citadas, mas sem acompanhar uma explicação no plano de governo, como:

  • "priorizar uma política municipal de turismo",
  • "implantar uma rede de incubadoras com o apoio de universidades",
  • "melhorar os serviços de alimentação escolar em todos os níveis e modalidades da rede municipal de educação.

Russomanno é o atual líder em intenção de voto na corrida pela Prefeitura de São Paulo, de acordo com levantamento do Datafolha divulgado na semana ada. O primeiro turno acontece no dia 15 de novembro.