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

René Descartes - Descartes e o gênio maligno

wikimedia commons
Imagem: wikimedia commons

Heidi Strecker, Especial para Página 3 Pedagogia & Comunicação

(Atualizado em 10/02/2014, às 16h55)

Quando o filósofo francês René Descartes escreveu as suas "Meditações", em 1641, deparou-se com um problema técnico. Tinha que mostrar ao leitor, ou melhor, provar, a dificuldade que nós temos em confiar nas percepções dos sentidos para conhecer as coisas.

A percepção (o conhecimento que nos vem dos órgãos dos sentidos) é falha. Quando penso que alguma coisa é real, eu posso estar apenas sonhando, tendo uma visão, posso estar com febre ou mesmo estar mergulhado na loucura.

Mas mesmo assim, pensou Descartes, mesmo tendo alucinações ou sonhando, pode ser que eu considere que alguma coisa que percebo pela visão ou pelo tato ou pela audição ainda assim derive de algo real.

Foi aí que Descartes introduziu na sua obra uma ideia tentadora e interessante.

E se existisse um gênio maligno, uma entidade do mal, disposta a me enganar todo o tempo?

A conclusão do filósofo foi imediata. Mesmo que esse gênio usasse toda sua indústria para nos ar a perna e nos fazer pensar que o que existe não existe e vice-versa, mesmo assim alguma coisa de real nos restaria. E essa coisa - a descoberta fundamental de Descartes - é o cogito: nossa capacidade de pensar.

Ainda que eu estivesse redondamente enganado, ainda assim eu seria essa coisa que pensa, essa coisa muito real que imagina, que sonha, que vê e que se engana redondamente. Mesmo que tudo seja falso, a existência de algo que pensa, que duvida, que se engana, é verdadeira.

Sujeito e objeto

Descartes concluiu assim que aquilo que pensa (o sujeito) é alguma coisa diferente daquilo que é pensado (o objeto). O raciocínio de Descartes, ao mostrar a autonomia do pensamento, permitiu o desenvolvimento de toda a filosofia que lhe sucedeu. A filosofia cartesiana é chamada de racionalismo e essa separação entre sujeito e objeto do pensamento deu origem ao que chamamos de filosofia moderna.

Vamos ver agora como o próprio filósofo apresentou seu gênio maligno?

“Suporei, pois, que há não um verdadeiro Deus, que é a soberana fonte da verdade, mas certo gênio maligno, não menos ardiloso e enganador do que poderoso, que empregou toda a sua indústria em enganar-me. Pensarei que o céu, o ar, a terra, as cores, as figuras, os sons e todas as coisas exteriores que vemos são apenas ilusões e enganos de que ele se serve para surpreender minha credulidade. Considerar-me-ei a mim mesmo absolutamente desprovido de mãos, de olhos, de carne, de sangue, desprovido de quaisquer sentidos, mas dotado da falsa crença de ter todas essas coisas. Permanecerei obstinadamente apegado a esse pensamento; e se, por esse meio, não está em meu poder chegar ao conhecimento de qualquer verdade, ao menos está ao meu alcance suspender meu juízo. Eis por que cuidarei zelosamente de não receber em minha crença nenhuma falsidade, e prepararei tão bem meu espírito a todos os ardis desse grande enganador que, por poderoso e ardiloso que seja, nunca poderá impor-me algo.”

"Meditações". Tradução J. Guinsburg e Bento Prado Júnior. (Col. Os Pensadores, São Paulo: Abril Cultural, 1979. p. 88-89.)