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

NFC, root, HDMI: entenda algumas siglas e termos da tecnologia

Shutterstock
Imagem: Shutterstock

Do UOL, em São Paulo

18/12/2015 06h00

A internet e o mundo da tecnologia sofrem mudanças constantes. É muito comum surgirem novas tendências, produtos e termos que estão constantemente inseridos na vida das pessoas. Essa aceitação já é tão comum que, muitas vezes, as pessoas aderem às novidades sem mesmo compreender o que são e como funcionam.

Para ajudar a desvendar os termos da tecnologia que cercam o dia a dia em casa, no trabalho e na escola, o UOL Tecnologia explica o significado das principais e mais comuns expressões.

  • Backup:

    Cópias de segurança de arquivos de computadores, tablets e smartphones feitas para prevenir a perda de dados em caso de roubo ou problemas técnicos. Esse processo pode ser feito com ajuda de serviços de armazenamento na nuvem como o Google Drive, OneDrive e Dropbox ou mesmo um HD externo.

  • Cookies:

    Esses são pequenos arquivos que ficam armazenados no computador e guardam dados específicos de um website quando o usuário o visita pela primeira vez. Ele vai notificar o site sobre sua presença nos próximos os, quantas vezes visitou a página, o que o ajuda a oferecer conteúdo mais "personalizado". Nada que comprometa a segurança da máquina e de informações pessoais.

  • Firewall:

    Software ou hardware que verifica as informações vindas da internet ou de uma rede específica e as bloqueia ou permite que elas tenham o ao seu computador. O firewall pode ajudar a impedir que softwares mal-intencionados ou mesmo hackers invadam a máquina por meio da rede. Vale lembrar que ele não substitui, mas sim funciona em parceria com os antivírus.

  • FTP (File Transfer Protocol):

    Nascido muito antes do armazenamento em nuvem como Google Drive e Dropbox, essa é uma tecnologia responsável por enviar arquivos pela internet. Basicamente, o FTP é o que faz intermédio da transferência de envio e recebimento de documentos de grande porte por meio de um endereço no navegador ou software instalado nos computadores. O processo é muito simples e semelhante à organização e transferência entre pastas de um PC: é só arrastar e soltar. Os programas mais populares para utilizar o FTP são o Filezilla, o Cyberduck e o Kasablanca para Windows, Mac e Linux, respectivamente.

  • HDMI (High-Definition Multimidia Interface):

    Esse é um sistema de conexão de alta qualidade que pode transmitir áudio e vídeo por meio de um único cabo. Ele pode conectar aparelhos de reprodução de Blue-Ray, notebooks e consoles de vídeo games a uma televisão que tenha uma entrada correspondente para transmitir imagens em alta qualidade e definição bastante superior aos sistemas de conexão analógicos.

  • HTML (Hyper Text Markup Language):

    A sigla corresponde a uma linguagem de programação base na internet muito usada para a criação de páginas online. O HTML é baseado em marcas, dessa forma, para construí-lo, são feitas marcações nos elementos do código para mostrar quais informações a página deve exibir. Ela foi desenvolvida para ser de fácil entendimento tanto por máquinas como por pessoas.

  • HTTP (Hyper Text Transfer Protocol) e HTTPS (Protocol Secure):

    No geral, a denominação é um protocolo que permite que o computador do usuário troque informações como o servidor que abriga um site. Dessa forma, durante o o a página, as máquinas podem receber e enviar todo tipo de conteúdo textual. Uma diferença significativa entre as siglas é que o HTTP, quando ado em redes inseguras como o Wi-Fi, permite que hackers interceptem os dados com facilidade. Já o HTTPS faz a criptografia desses dados para garantir a segurança e dificultar a interceptação das informações.

  • NFC (Near Field Communication):

    Essa é uma tecnologia que permite fazer trocas de informações entre dispositivos sem o uso de cabos ou fios. Assim que os aparelhos estão próximos o suficiente para uma comunicação wireless ser estabelecida, smartphones, tablets, TVs, cartões e qualquer outro produto que tem e a um chip NFC podem se conectar.

  • Root:

    Esse processo é o responsável por desbloquear smartphones com sistema operacional Android. Com ele, o usuário tem liberdade para fazer mudanças profundas no sistema operacional e no modo como ele funciona, substituir funções instaladas pelos fabricantes tornando o usuário o central do aparelho.

  • USB (Universal Serial Bus):

    Já bastante conhecida, essa tecnologia deixou mais fácil e instantânea a conexão entre teclados, mouses, câmeras e computadores, notebook, televisores, além de dispensar um tipo de conector específico para cada dispositivo. Hoje, o modelo mais recente de USB é o 3.0. Ele fornece uma taxa de transferência de dados de até 4.8 Gbps e um fornecimento de energia cerca de 80% maior que suas versões anteriores. Essas características o tornam um padrão superior e ideal para dispositivos de alto desempenho.