quinta-feira, 15 de maio de 2008

Guerra dos Navegadores


Ainda existe muita gente usando o IE6, infelizmente. Mas aí vai um gráfico legal sobre a Guerra dos Navegadores.
PS – Essa imagem é PNG, se vc estiver usando o IE6 não irá ver, então faz o favor de atualizar. Ainda preciso dizer que ele está super atrasado, que várias tecnologias não funcionam, e que tem várias falhas de segurança?
browserwars

segunda-feira, 12 de maio de 2008

Intel Atom: o mini-Centrino

Embora nem sempre sejam as melhores opções em termos de custo-benefício, os notebooks Intel Centrino desfrutam de uma boa fama no mercado, já que oferecem quase sempre uma boa estabilidade e uma boa autonomia de baterias. Eles podem ser mais caros, mas pelo menos você sabe que está comprando um produto equilibrado.
A idéia por trás da marca Centrino é justamente convencer os compradores de que os notebooks com o selo são uma escolha segura. A partir do momento em que os compradores passam a preferir notebooks baseados na plataforma, a Intel pode trabalhar com margens de lucro maiores e assim maximizar os lucros, ao mesmo tempo em que mantém o controle sobre toda a plataforma. Ao comprar um notebook com o selo, você está levando pra casa não apenas um processador, mas também um chipset e uma placa wireless da Intel:

index_html_1e73d52c
A primeira encarnação da plataforma Centrino foi lançada em 2003 e responde pelo codenome Carmel. Ela consiste na combinação de um Pentium M com core Banias ou Dothan, um chipset i855 e uma placa wireless Intel 2100 ou 2200.
Em 2005 foi lançada a segunda geração, sob o codenome Sonoma. Nessa época, o Banias já havia sido descontinuado, de forma que passou a ser usado exclusivamente o Pentium M com core Dothan. O limitado 855 foi substituído pelo Intel 915, que trouxe o suporte a memórias DDR2, SATA, slots Express Card, áudio HDA e bus de 533 MHz.
A terceira geração é a plataforma Napa, lançada em 2006. Ela consiste no uso de um processador Core Solo, Core Duo ou Core 2 Duo em versão soquete M, combinado com o chipset Intel 945 (que inclui suporte a bus de 667 MHz) e uma placa wireless Intel 3945ABG ou 4965AGN.
Em 2007 foi lançada a plataforma Santa Rosa. Ela prevê o uso de um processador Core 2 Duo soquete P (bus de 800 MHz), combinado com um chipset Intel 965 e uma placa wireless Intel 4965AGN. Para 2008 é esperada uma atualização da plataforma Santa Rosa, com a inclusão de processadores baseados no Penryn. Eles incluirão suporte ao EDAT (Enhanced Dynamic Acceleration Technology), onde o processador pode desativar o segundo núcleo e usar a redução no consumo para fazer um overclock temporário do núcleo ativo, melhorando assim o desempenho em aplicativos single threaded, que não são capazes de se beneficiar de um processador dual-core.
Depois da plataforma Centrino, temos agora um novo selo, o Intel Atom, uma plataforma destinada a ser usada em MIDs, tablets e em equipamentos ultra-portáteis em geral:

index_html_757a7c2f
O principal componente da plataforma Atom é o Silverthorne, um processador x86 de ultra-baixo consumo, que nas versões mais lentas oferece um consumo abaixo da marca de 1 watt. Para efeito de comparação, o Celeron ULV usado no Asus Eee tem um TDP de 5.5 watts, quase 10 vezes mais do que a versão mais econômica do Silverthorne, que oferece um TDP de apenas 0.6 watts.
Como em outros lançamentos da Intel, temos uma mistura de nomes-código e de nomes comerciais. Vamos começar dando nomes aos bois:
Silverthorne: O processador.
Poulsbo: O chipset.
Menlow: O nome código da plataforma (combinação de ambos).
Intel Atom: O nome comercial da plataforma.
Uma diferença com relação à plataforma Centrino é na que na plataforma Atom os fabricantes podem escolher entre usar uma placa wireless da Intel, ou usar soluções de outros fabricantes. Com isso, fabricantes como a Sony ou a Toshiba podem produzir MIDs e outros tipos de aparelhos, combinando a dupla Silverthorne/Poulsbo com chipsets wireless 802.11n, transmissores de celular, transmissores WiMAX ou qualquer outra tecnologia que estiver disponível, sem se limitarem às soluções oferecidas pela Intel, e ainda assim utilizarem o selo Atom.
Ao contrário de processadores de baixo consumo anteriores (como o Celeron ULV usado no Asus Eee), o Silverthorne não é uma versão reduzida do Pentium-M ou do Core Duo, mas sim um novo projeto, desenvolvido a partir do zero, com o propósito de ser um processador de baixo consumo.
Nesse slide da Intel, temos uma comparação entre o tamanho físico do Silverthorne e do Penryn:

index_html_1a006b0a
O Silverthorne possui apenas 47 milhões de transístores, que ocupam uma área de apenas 25 milímetros quadrados. Para ter uma idéia, o Pentium-M e o Celeron-M (baseados no core Dothan) ocupam uma área de 84 milímetros quadrados, enquanto o Core 2 Duo com core Penryn (também fabricado usando a técnica de 0.045 micron) ocupa uma área de 107 mm².
Como o chip é muito pequeno, a Intel optou por utilizar um formato retangular (em vez de quadrado) para facilitar o encapsulamento:

index_html_34004c80
Quase todos os processadores atuais, tanto Intel quanto AMD são capazes de processar instruções fora de ordem (out-of-order), de forma a processar mais instruções por ciclo de clock. Isso é feito por dois circuitos adicionais.
O principal é o circuito de branch prediction, responsável por organizar as instruções de forma a manter as unidades de execução do processador ocupadas. Além de procurar adiante no código por instruções que podem ser "adiantadas", ele "adivinha" o resultado de operações de tomada de decisão (levando em conta fatores como o resultado de operações similares executadas anteriormente), permitindo que o processador vá "adiantando o serviço" enquanto o resultado da primeira operação ainda não é conhecido. Como todo bom adivinho, ele às vezes erra, fazendo com que o processador tenha que descartar todo o trabalho feito. Apesar disso, o ganho é muito grande, pois nos processadores atuais o circuito de branch prediction acerta em mais de 90% dos casos.
O segundo componente é o scheduler (agendador), que armazena as instruções a serem processadas nos ciclos seguintes, de acordo com o determinado pelo circuito de branch prediction.
Este trabalho é necessário, pois apesar de todos os avanços na arquitetura dos processadores, a maior parte dos softwares que utilizamos continuam sendo otimizados para processadores i386, que processavam uma instrução de cada vez. O circuito de branch prediction permite (até certo ponto) quebrar esta limitação, permitindo que o processador processe 3 ou mais instruções por ciclo, mas em troca aumenta bastante a complexidade e o consumo elétrico do processador, já que, além de processar as instruções, ele passa a ter o trabalho de ordená-las.
Uma das diferenças fundamentais do Silverthorne é que ele processa instruções em order (in-order), de forma muito similar ao que faziam os processadores Pentium 1. Com isso, os circuitos adicionais deixam de ser necessários e o processador deixa de desperdiçar energia pré-processando e ordenando as instruções e pode se concentrar no trabalho principal.
Naturalmente, essa arquitetura simples resulta em um desempenho por ciclo de clock inferior ao de outros processadores atuais. Para reduzir a perda a Intel ressuscitou outra tecnologia já quase esquecida: o hyper threading.
Apesar de não ser um processadores dual-core, o Silverthorne possui duas unidades de execução, que permitem a ele processar duas instruções por ciclo de clock. O hyper threading permite que as duas unidades sejam usadas para processar dois threads diferentes, que podem ser dois programas rodando simultaneamente, ou duas instâncias do mesmo programa. Isso permite melhor aproveitar os recursos do processador, sem com isso aumentar muito seu consumo elétrico.
A remoção dos circuitos de branch prediction permitiu também que a Intel aumentasse o número de estágios de pipeline, para 16 (o Core 2 Duo possui 14 estágios e o antigo Pentium M com Core Dothan possui 12). Normalmente, aumentar o número de estágios de pipeline reduz consideravelmente o desempenho do processador, já que faz ele perder mais tempo em operações de tomada de decisão (o exemplo mais extremo é o Pentium D, que precisa operar a uma freqüência pelo menos duas vezes mais alta para competir com um Core 2 Duo atual).
Entretanto, o fato do Silverthorne processar as instruções em ordem reduz bastante a perda, permitindo que o processador possua mais estágios de pipeline (que permitem que ele opere a freqüências mais altas), sem com isso comprometer de forma considerável a eficiência.
Completando o conjunto, temos o suporte a instruções SSE 3 (assim como o Pentium-M, o Silverthorne conta com uma única unidade SSE), 56KB de cache L1 (32KB para instruções e 24KB para dados) e 512 KB de cache L2. Ao contrário do que se especulava nos meses anteriores, está disponível também o suporte a instruções de 64 bits.
O Silverthorne utiliza o mesmo barramento com 4 transferências por clock utilizado nos processadores Core 2 Duo, mas a freqüência de operação é mais baixa (para economizar energia) e é chaveada de forma dinâmica entre 533 e 400 MHz, de forma a economizar energia nos momentos de baixa atividade. Este recurso é muito similar ao "Dynamic Front Side Bus Switching" usado na plataforma Santa Rosa (onde o FSB oscila entre 800 e 400 MHz).
A versão mais econômica do Silverthorne operará a apenas 500 MHz, mas oferecerá um TDP (consumo típico) de apenas 0.6 watts, o que é menos até mesmo que chips ARM similares, usados em celulares e palmtops. Existirão também versões mais rápidas, operando a até 1.8 GHz, com TDP de 2.5 watts. Futuramente, podem vir a ser lançadas novas revisões do processador, operando a freqüências mais elevadas, ou oferecendo um consumo elétrico ligeiramente mais baixo.
Mesmo com todas as melhorias, o Silverthorne oferecerá um desempenho muito inferior ao dos processadores Core 2 Duo baseados no core Penryn, o que natural, considerando a simplicidade do chip. O objetivo da Intel é simplesmente oferecer um processador capaz de operar dentro da faixa de 1 a 2 GHz, que ofereça um desempenho por ciclo de clock similar ao de um Pentium-M, o que é bastante interessante considerando a classe de dispositivos a que o Silverthorne é destinado:

index_html_3b67916f

index_html_m4ed61041
O Silverthorne estará disponível ainda na primeira metade de 2008 (provavelmente entre maio e junho) e especula-se que ele poderá vir a ser usado na versão do Asus Eee com tela de 8.9" que será exibido na CeBIT:

index_html_3f4a02c0
A Asus tem se revelado surpreendentemente lenta com relação às atualizações do Eee, por isso ainda não é possível confirmar a notícia, mas, independentemente de ser usado ou não no Eee, o Silverthorne deverá ser rapidamente adotado em ultraportáteis similares de outros fabricantes; a maioria deles rodando distribuições Linux otimizadas para a tarefa e alguns poucos rodando o Vista (que além da questão do licenciamento, é mais pesado).
A Intel pretende lançar uma versão aperfeiçoada da plataforma Menlow entre 2009 e 2010 (ainda fabricada usando a técnica de 0.045 micron), que responderá pelo nome Moorestown.
O sucessor do Silverthorne incluirá um controlador de memória integrado (similar ao que temos no Athlon X2) e também um chipset de vídeo integrado ao próprio processador. Isso permitirá reduzir a latência de acesso à memória (um fator especialmente crítico dentro da arquitetura de processamento de instruções em ordem do Silverthorne/Moorestown) e, ao mesmo tempo, reduzir o consumo elétrico global dos aparelhos, já que o chipset de vídeo integrado será construído usando a mesma técnica de fabricação usada no restante do processador e poderá utilizar os mesmos estágios de baixo consumo que ele.
Outra mudança é que o Moorestown utilizará memórias DDR3 (que até a época do lançamento já deverão ter caído de preço), enquanto o Menlow/Silverthorne utilizará memórias DDR2.
Com as melhorias, o Moorestown será capaz de atingir mais nichos que o Silverthorne. Muito provavelmente, ele será usado não apenas em MIDs e em notebooks de baixo-consumo, mas também em PDAs e em alguns smartphones, que até o momento são quase que exclusivamente baseados em processadores ARM. Uma terceira geração da plataforma, fabricada em uma técnica de 0.032 micron poderá oferecer um consumo elétrico ainda mais baixo, abrindo as portas para uso da plataforma em todo tipo de aparelhos, incluindo os modelos mais compactos de smartphones.
A Intel demonstrou um protótipo de um comunicador pessoal baseado no Moorestown no último IDF. Apesar de estranho, o formato alongado permite incluir uma tela de 1024 pixels de largura (com, provavelmente, 256 pixels de altura), que permite acessar páginas web sem redimensionamento ou reformatação do conteúdo:

index_html_m7bb74691
Atualmente, a plataforma mais usada em smartphones são os processadores ARM, em suas diversas variações. Embora operem a freqüências relativamente baixas, se comparados aos processadores x86 (na maioria dos casos apenas 300, 400 ou 500 MHz), os chips ARM são baratos e possuem um baixo consumo elétrico, por isso são extremamente populares em celulares, PDAs, pontos de acesso, modems ADSL, centrais telefônicas, sistemas de automatização em geral, videogames (como o GameBoy Advance) e assim por diante. O grande problema é que, embora utilizem um conjunto de instruções mais eficiente, os chips ARM não são compatíveis com os softwares desenvolvidos para micros PC, o que torna necessário desenvolver novos softwares, ou arcar com os custos de modificar os softwares existentes para rodarem na nova plataforma.
Por serem processadores x86 completos, o Silverthorne e o Moorestown terão uma grande vantagem competitiva, já que permitirão rodar o Firefox e outros softwares completos sem necessidade de modificações nos binários.
Outra vantagem a favor do Silverthorne e do Moorestown é a técnica de fabricação usada. A maioria dos chips ARM usados atualmente são ainda fabricados usando a técnica de 0.09 micron ou mesmo a obsoleta técnica de 0.13 micron, o que resulta em um consumo elétrico por transístor muito mais elevado, tirando parte da competitividade dos chips. Atualmente, apenas a Intel possui fábricas de 0.045 micron, o que garantirá que o Menlow/Moorestown mantenha a vantagem competitiva durante algum tempo.
Naturalmente, não é de se esperar que a nova plataforma seja adotada em massa da noite para o dia, mas a Intel tem uma boa chance de conseguir conquistar uma boa fatia do mercado de dispositivos integrados ao longo dos próximos anos. Isso tratá um cenário bastante interessante, já que com um uso de processadores x86, celulares, HDTVs e outros dispositivos poderão rodar programas originalmente escritos para micros PC.
Se você está pensando em comprar um notebook ultra-compacto, ou um smartphone nos próximos anos, é melhor adiar a compra o máximo possível: muita coisa vai acontecer.

segunda-feira, 5 de maio de 2008

Certificados digitais

Uma grande mudança está em curso no mundo da internet: a consolidação dos Certificados Digitais.

I. A necessidade de identificação


Quando duas pessoas se encontram para realizar uma transação, o primeiro passo que adotam é conhecer a identidade do interlocutor, ou seja, uma pessoa quer saber com quem está transacionando.

Quando é necessária uma identificação formal (ou seja, é preciso ter certeza da identidade da outra pessoa), comumente utilizam-se documentos de identificação (como a cédula de identidade, o passaporte, etc).

Um documento de identificação tem duas características fundamentais:

Primeiro, ele contém alguns dados que individualizam seu portador, como foto, data de nascimento, impressão digital, assinatura, etc. Ao confrontarmos esses dados com as características do seu portador, podemos saber se o mesmo é de fato a pessoa identificada.

Segundo, o documento é emitido por uma autoridade que tenha credibilidade; por exemplo, a cédula de identidade é emitida pela Polícia Civil, enquanto o passaporte é emitido pela Polícia Federal. É graças à credibilidade dessa autoridade emissora que os documentos adquirem credibilidade. Um crachá emitido por uma empresa, por exemplo, não tem a credibilidade como emissora de documentos, e por isso um crachá não tem a força de documento de identificação.

II. O problema da prova de identidade nas transações on-line


Uma das maiores diferenças entre transações on-line e transações presenciais é que, enquanto nessas últimas as partes se encontram e podem trocar documentos de identificação, as transações on-line geralmente ocorrem sem que as partes jamais se encontrem.

Daí surge o problema: como uma parte saberá de fato a identidade da outra? É justamente por causa dessa dificuldade que muitas brechas para fraudes se abrem na internet: consumidores compram produtos que nunca são entregues, e lojas virtuais vendem para falsos compradores.

Algumas técnicas foram criadas para tentar minimizar esses problemas.

Uma técnica comum (adotada, por exemplo, pelos bancos) é, antes de realizar transações on-line, fazer a identificação prévia presencial. Para se acessar um serviço de um banco na intranet, é necessário primeio comparecer no banco, levar os documentos, fazer a identificação e apenas aí obter uma senha para acesso on-line. Essa técnica, entretanto, é limitada, pois exige que as partes se encontrem, o que nem sempre é possível.

Lojas on-line, que vendem produtos sem nunca encontrar seus clientes, tentam fazer identificações de maneira indireta, perguntando por dados que (supostamente) apenas o comprador deveria saber. O dado pessoal mais comumente exigido (até porque é geralmente essencial para se fazer uma compra) é o número do cartão de crédito, assim como alguns dígitos verificadores; e é nesse mesmo sentido que, por exemplo, para comprar passagens aéreas da Gol é necessário informar dados como CPF, data de nascimento, etc.

Mas essas técnicas, que existem desde os primórdios da internet comercial, já estão ultrapassadas. Mais e mais os hackers estudam brechas no esquema e elaboram maneiras de se aproveitar dessas vulnerabilidades.

III. O Certificado Digital


A tecnologia dos certificados digitais fundamenta-se em dois pilares: criptografia assimétrica forte e credibilidade de autoridade certificadora.

III.1 A criptografia assimétrica (também chamada Criptografia de Chave Pública), criada a partir de um algoritmo desenvolvido na década de 1970 chamado RSA, baseia-se no seguinte princípio: um par de duas chaves (longos números binários) são criadas pelo algoritmo; a criptografia que é feita por uma chave pode ser decriptografada apenas pela outra chave, e vice-versa.

Com isso, uma pessoa pode manter uma das chaves apenas para si (a chamada chave privada) e divulgar a outra chave (a chamada chave pública) para qualquer outra pessoa. Quando qualquer pessoa quiser enviar uma mensagem confidencial ao portador da chave, utiliza a chave pública para criptografá-la, e apenas o portador da chave privada poderá decriptografá-la (ou seja, garantimos confidencialidade). Por outro lado, quando uma pessoa qualquer receber uma mensagem e for capaz de decriptografá-la utilizando uma dada chave pública, ela saberá que tal mensagem foi enviada pelo portador da respectiva chave privada (ou seja, garantimos autenticidade).

O método tem a vantagem de garantir confidencialidade e autenticidade sem exigir um encontro presencial entre as partes. Se eu conheço a chave pública de uma pessoa, tenho a segurança de que apenas ela (a que detém a respectiva chave privada) será capaz de ler as mensagens criptogradas, ou apenas ela foi capaz de me mandar uma mensagem criptograda. É isso que garante a segurança e robustez de sistemas de criptografia como, por exemplo, o pgp.

III.2 Ao utilizar a chave pública de uma pessoa, saberei que a pessoa detém a respectiva chave privada, mas não saberei a identidade de tal pessoa (o algoritmo RSA é aberto, e existem diversos programas que são capazes de gerar pares de chaves assimétricas).

A Autoridade Certificadora exerce o papel de conferir identidades e associá-las a chaves.

Para se conferir a identidade, a AC utiliza o antigo método: o candidato à identificação deve ir à presença física da Autoridade Certificadora e mostrar documentos que comprovem sua identidade (cédula de identidade, passaporte, etc).

Após conferir a identidade do candidato, a Autoridade endossa a identidade: ela faz isso utilizando a própria chave privada para assinar a chave pública do identificado. Esse conjunto de chave pública, assinada pela chave privada de uma Autoridade Certificadora, e com uma data de validade, é chamado um Certificado Digital.

IV. Utilização do Certificado Digital.


Como funciona, na prática, a identificação com Certificado Digital?

O primeiro pressuposto é que todos os certificados emitidos estejam publicamente disponíveis, através de uma estrutura chamada Infra-Estrutura de Chave Pública (ICP), ou Public Key Infrastructure (PKI).

Suponhamos que Alice Silva envia uma proposta comercial a Bob Santos pela internet, e os dois jamais se encontraram.

Como Bob saberá que a pretensa Alice Silva é de fato Alice Silva?

Bob recebe a mensagem pretensamente assinada, ou seja, criptografada (na verdade, a assinatura envolve também uma etapa intermediária, na qual se gera uma "impressão digital da mensagem", chamada hash) pela chave privada de Alice. Bob obtém o certificado digital de Alice. Se a e a chave pública contida no certificado de Alice não for capaz de decriptografar a mensagem, então Bob saberá que a mensagem original não foi enviada pela pretensa Alice, e poderá descartar a mensagem; se a chave pública for capaz de decriptografar a mensagem, então Bob saberá que a pretensa Alice de fato possui a chave privada de Alice.

Bob (ou melhor, a máquina de Bob) procurará então identificar a Autoridade Certificadora (AC) de Alice. Isso é feito verificando-se qual chave privada assinou o certificao de Alice e buscando-se o respectivo certificado (que será o certificado da AC). Quando a máquina encontra a AC, ela informa seu nome a Bob (através de uma mensagem na tela do computador) e pergunta a Bob se ele reconhece a AC como uma AC confiável. Se Bob confiar na AC, ele acreditará que a AC fez uma prévia identificação da Alice, e portanto acreditará que a mensagem original foi de fato enviada por Alice Silva.

Geralmente, o Windows pergunta apenas uma vez se o usuário reconhece uma AC, e armazena a resposta. Algumas certificadoras bastante conhecidas são a Verisign, a Thawte e a brasileira Certisign.

V. Certificação Digital no Brasil.


O Brasil é provavelmente um dos países mais adiantados em relação à utilização de certificados digitais.

Vários bancos já utilizam chips com certificados digitais; nesses casos, a Autoridade Certificadora é o próprio banco, e por isso apenas os bancos emissores e seus clientes acreditam nesses certificados.

Entretanto, o Governo brasileiro deu um grande passo. A Medida Provisória 2200 criou a Infra-Estrutura de Chaves Públicas Brasileira, a ICP-Brasil. O ponto inicial da ICP-Brasil é a chamada AC Raiz, que recebeu poderes para validar certificados digitais emitidos segundo algumas rígidas normas baixadas por um Comitê Gestor.

Além disso, e esse é outro ponto em que o Brasil se diferenciou dos demais países, a MP 2200 determinou, no seu artigo 10, que

"Art. 10. Consideram-se documentos públicos ou particulares, para todos os fins legais, os documentos eletrônicos de que trata esta Medida Provisória.

§ 1o As declarações constantes dos documentos em forma eletrônica produzidos com a utilização de processo de certificação disponibilizado pela ICP-Brasil presumem-se verdadeiros em relação aos signatários, na forma do art. 131 da Lei no 3.071, de 1o de janeiro de 1916 - Código Civil."


Isso significa que um arquivo assinado com uma chave privada certificada pela ICP-Brasil torna-se um documento (caput do artigo), e, ainda, que a assinatura digital tem o mesmo valor que a assinatura manual (parágrafo 1 do artigo).

Isso tem o potencial de revolucionar as relações on-line.

Se duas partes transacionarem pela internet, e se ambas estiverem de posse de um certificado digital emitido pela ICP-Brasil, ambas saberão que podem confiar na identidade da outra parte. Mais do que isso, qualquer assinatura digital terá o mesmo valor jurídico que teria se as partes tivessem se encontrado e assinado papéis a mão.

Alguns exemplos práticos de utilização do certificado já podem ser observados.

Por exemplo, a Receita Federal já disponibiliza um Centro Virtual de Atendimento ao Contribuinte (e-CAC). Através do e-CAC, contribuintes que possuam um certificado digital emitido pela ICP-Brasil podem fazer transações como visualizar declarações de imposto de renda de anos passados, retificá-las, enviar mensagens eletrônicas para a Receita (com valor jurídico de documento), etc.

Isso somente é possível porque a Receita, ao confiar na AC Raiz da ICP-Brasil, e por força da MP 2200, pode acreditar na identidade do portador do certificado, e dar a ele informações que de outra forma seriam sigilosas.

Outro exemplo está no Banco do Brasil. Atualmente, todos os contratos de financiamento ao comércio exterior firmados pelo banco e importadores são assinados utilizando-se certificados digitais. Os importadores não precisam mais comparecer ao banco, e ninguém precisa ficar armazenando contratos em papel.

Para se obter um certificado digital da ICP-Raiz, deve-se procurar uma das Autoridades Certificadoras habilitadas.

À medida que mais e mais pessoas passem a conhecer a tecnologia de certificados digitais, sua utilização de se tornar mais corriqueira.

É possível que, num futuro breve, muitas das transações que fazemos assinando um contrato no papel passem a ser feitas utilizando-se certificados e assinaturas digitais.

Os limites físicos da computação

A lei de Moore ― todos nós a conhecemos (ou ao menos pensamos que sim). Para ser bem exato, a lei de Moore prevê que o número de componentes por circuito integrado (a um custo mínimo por componente) dobra a cada 24 meses (a previsão original, de 1965, era de 12 meses, mas a lei foi revisada). Pondo de maneira mais prática, a lei de Moore costuma ser usada para descrever o contínuo e exponencial crescimento da tecnologia da computação em diferentes áreas ― capacidade de discos, velocidade do clock e memória RAM, por exemplo. Sempre que nos aproximamos do limite de uma tecnologia de produção, surge o mesmo debate: será o fim da lei de Moore? Até agora, a resposta tem sido não.

Mas a lei de Moore é, na verdade, uma afirmação da engenhosidade humana, das forças do mercado e da física. Sempre que o crescimento exponencial é impossibilitado em alguma área ― seja na velocidade do clock ou em uma determinada técnica de mascaramento ― os engenheiros descobrem uma nova área ou técnica que pode crescer exponencialmente. Nenhuma técnica mantém o crescimento exponencial por muito tempo, e a migração para novas técnicas é rápida o suficiente para que a taxa de crescimento continue a ser exponencial.

A descoberta e o aperfeiçoamento das técnicas de produção é guiada de um lado pela demanda computacional, e do outro pela física. No meio há um terreno pantanoso feito de política, ciência e da boa e velha engenharia. É difícil compreender o vasto número de forças que orientam a demanda e os muitos fatores que afetam a inovação, incluindo a economia de escala, as atitudes culturais diante de novas idéias, as amplas campanhas de marketing e os estranhos eventos que ocorrem nos últimos suspiros das megacorporações. Fazendo uma comparação, é fácil compreender os limites da computação, desde que você tenha um bom entendimento de física quântica, teoria da informação e das propriedades dos buracos negros.

O "Laptop Supremo"


No artigo Os Limites Físicos Supremos da Computação, publicado na revista Nature em 2000 e disponível em PDF aqui, o Dr. Seth Lloyd calcula (e explica) os limites da computação com base no conhecimentos atuais da física. Claro que ainda não conhecemos todos os aspectos da física - e estamos bem longe disso - mas como ocorre em outras áreas da engenharia, sabemos o suficiente para fazer algumas previsões extremamente interessantes sobre o futuro da computação. Esse artigo faz uso de trabalho já existente sobre os limites físicos da computação e introduz vários resultados curiosos, como o limite supremo da velocidade computacional. O que me parece mais interessante é um cálculo surpreendentemente específico de por quantos anos a lei de Moore continuará a ter efeito (continue lendo para saber!).

O Dr. Lloyd começa assumindo que não temos a menor idéia de como será a tecnologia de fabricação de computadores no futuro. Muitas das discussões acerca da lei de Moore se baseiam nos limites físicos de técnicas de fabricação específicas, como o limite do tamanho de recursos em máscaras ópticas imposto pelo comprimento de onda da luz. Ao invés disso, ele ignora completamente as técnicas de fabricação e usa várias constantes físicas importantes: a velocidade da luz c, a constante reduzida de Planck h, geralmente escrita com um traço sobre o h, símbolo não disponível em HTML, então você vai ter que imaginar), a constante gravitacional g e a constante de Boltzmann kB. Essas constantes e nosso conhecimento limitado da relatividade geral e da física quântica são suficiente para deduzir muitos limites importantes da computação. Por isso, estes resultados não dependem de nenhuma técnica de fabricação em particular.

O artigo usa o artifício do "Laptop Supremo" para tornar os cálculos mais concretos. O laptop supremo tem massa de um quilo e volume de um litro (por coincidência, quase o mesmo do Eee PC em 2008), e opera nos limites físicos máximos da computação. Aplicar os limites ao laptop supremo ajuda a entender o tipo de poder computacional portátil que se pode obter - sem considerar a vida útil da bateria, é claro.


A energia limita a velocidade


Então, quais são os limites? O artigo começa deduzindo o limite supremo do número de computações por segundo. Isso depende da energia total do sistema, E, que pode ser calculada com a famosa equação de Einstein que relaciona massa e energia, E = mc2 (eu avisei que íamos precisar da velocidade da luz). Dada a energia total do sistema, precisamos saber o quão rápido o sistema poderá mudar de um estado distinguível para outro - por exemplo, para inverter bits. Isso é limitado pelo princípio da incerteza de Heisenberg. Lloyd diz o seguinte sobre o princípio da incerteza de Heisenberg:

Em particular, a correta interpretação do princípio da incerteza de tempo-energia de Heisenberg ΔEΔt ≥ h não é a de que é preciso tempo Δt para medir a energia com precisão ΔE (uma falácia que foi jogada para escanteio por Aharonov e Bohm), mas sim a de que um estado quântico com difusão em energia ΔE leva um tempo de no mínimo Δt = πh/2ΔE para evoluir para um estado ortogonal (e distinguível). Recentemente, Margolus e Levitin expandiram esse resultado para demonstrar que um sistema quântico com energia média E leva um tempo de no mínimo Δt = πh/2E para evoluir para um estado ortogonal.

Em outras palavras, o princípio da incerteza de Heisenberg implica em dizer que um sistema levará uma quantidade mínima de tempo para mudar de maneira observável, e que o tempo está relacionado à energia total do sistema. O resultado é que um sistema de energia E pode realizar 2E/πh operações lógicas por segundo (uma operação lógica seria, por exemplo, realizar a operação AND em dois bits de entrada - pense nisso mais ou menos como operações de bit único). Como o laptop supremo tem massa de um quilo, ele tem energia E = mc2 = 8.9874 x 1016 joules. O laptop supremo pode realizar um máximo de 5.4258 x 1050 operações por segundo.

O quão perto estamos das 5 x 1050 operações por segundo de hoje? Cada operação dessas é basicamente uma operação de bit único, então devemos converter as medidas atuais de desempenho a suas operações de bit único por segundo equivalentes. A medida mais comum disponível para operações por segundo é a FLOPS (operações de ponto flutuante por segundo) medida pela LINPACK (consulte a página da Wikipedia sobre FLOPS). Estimar o número exato de operações físicas de bit único envolvidas em uma operação de ponto flutuante de 32 bits exigiria conhecimento proprietário da implementação FPU. O número de FLOPS relatados pela LINPACK varia bastante dependendo do nível de otimização do compilador. Neste artigo, faremos uma estimativa bem genérica de 1000 operações de bit único por segundo (SBOPS) por FLOPS, e pedimos a qualquer um com uma estimativa melhor que a poste nos comentários.

Com nosso fator de conversão de 1000 de FLOPS para SBOPS, o dono do recorde atual da LINPACK, o supercomputador Roadrunner (que está perto da minha cidade natal, Albuquerque, no Novo México) alcança a velocidade de 1 petaflop, ou 1000 x 1015 = 1 x 1018 SBOPS. Mas isso num supercomputador ― estamos falando do laptop supremo, que só tem um quilo de massa e um litro de volume. As CPUs de laptops estão por volta de um gigaflop, ou 1012 SBOPS, nos deixando a 39 ordens de magnitude de atingir o limite físico teórico de velocidade computacional. Por fim, os computadores quânticos existente já alcançaram o limite supremo de velocidade computacional ― em um pequeno número de bits, e em ambientes de pesquisa, mas que alcançaram, alcançaram.


A entropia limita a memória.


O que nós queremos mesmo saber do laptop supremo é quantos DVDs adquiridos legalmente poderemos armazenar nele. A quantidade de dados que um sistema pode armazenar é uma função do número de estados físicos distinguíveis que ele pode suportar ― cada configuração distinta de memória exige um estado físico distinto. De acordo com Lloyd, "sabemos há mais de um século que o número de estados acessíveis de um sistema físico, W, está relacionado a sua entropia termodinâmica pela fórmula: S = kB ln W" (S é a entropia termodinâmica do sistema). Isso significa que podemos calcular o número de bits que o laptop supremo pode armazenar se soubermos sua entropia total.

Calcular a entropia exata de um sistema é bem difícil. Do artigo:

Para calcular a entropia máxima de um quilo de matéria em um volume de um litro precisamos de um completo conhecimento das dinâmicas de partículas elementares, gravidade quântica etc. Não possuímos esse conhecimento. Entretanto, a entropia máxima pode ser estimada prontamente com um método que lembra o usado para calcular quantidades termodinâmicas do início do universo. A idéia é simples: modelar o volume ocupado pelo computador como uma coleção de modos de partículas elementares com energia média total E.

A discussão que se segue é da pesada; por exemplo, inclui uma observação de que o número de baryon pode não ser conservado no caso de computação em buraco negro, e nesse ponto eu vou ter que confiar na palavra do Dr. Lloyd. Mas o resultado é que o laptop supremo, operando com máxima entropia, poderia armazenar ao menos 2.13 x 1031 bits. Claro que o máximo de entropia significa que toda a matéria do laptop seria convertida em energia ― o que é, basicamente, o equivalente a uma explosão termonuclear. Como observa Lloyd, "é claro que criar uma embalagem para isso já torna pouco provável que possamos alcançar esse limite." Talvez num próximo artigo possamos discutir a Embalagem de Laptop Suprema...

E o quão próximos os computadores modernos estão desse limite? Um laptop moderno de 2008 pode armazenar até 250GB ― em torno de 2 x 1012 bits. Estamos umas 19 ordens de magnitude distantes da capacidade máxima de armazenamento, ou mais umas 64 duplicações na capacidade. A capacidade do disco, medida em bits por polegada quadrada, dobrou 30 vezes entre 1956 e 2005, e nesse ritmo, isso vai se repetir mais 64 vezes num período entre 50 e 100 anos. Não é o limite total da lei de Moore aplicado à computação, mas sugere a possibilidade de um fim para a lei de Moore no que se refere ao armazenamento em nosso tempo de vida. Acho que nós, desenvolvedores de sistemas de arquivos, deveríamos começar a pensar num segundo emprego...


Redundância e correção de erros


Os computadores atuais não se aproximam dos limites físicos da computação por muitos motivos. Como Lloyd observa, "Boa parte da energia [dos computadores atuais] está retida na massa de partículas das quais o computador é construído, deixando apenas uma fração infinitesimal para a realização de lógica." O armazenamento de um único bit na DRAM usa "bilhões e bilhões de graus de liberdade" ― elétrons, por exemplo ― ao invés de apenas um grau de liberdade. Os computadores atuais tendem a conduzir computações a temperaturas em que a matéria permaneça na forma de átomos, e não de plasma.

Outro limite prático fascinante da computação é a taxa de erros de operações, que está atada à taxa em que o computador por dispersar calor no ambiente. O fato é que operações lógicas, por natureza, não exigem a dissipação de energia, como originalmente teorizado por von Neumann. Operações reversíveis (como NOT) que não destroem informações não exigem a dissipação de energia; isso só ocorre em operações irreversíveis (como o AND). Intuitivamente, isso faz sentido; a única maneira de destruir um bit é transformar a informação em calor, do contrário o bit terá sido apenas movido para outro lugar e a informação representada por ele ainda estará por lá. A computação reversível foi implementada e demonstra uma dissipação de força extremamente baixa.

É claro que alguma energia sempre será dispersada, mesmo que a computação seja reversível. No entanto, o apagamento de bits - e dos erros, em particular - exige um gasto mínimo de energia. A taxa na qual o sistema pode "despejar erros no ambiente" na forma de calor limita a taxa de erros de bits do sistema; ou, de forma semelhante, a taxa de erros de bits, combinada à taxa de transferência de calor para fora do sistema limita a taxa de operações com bits. Lloyd estima que a taxa na qual o sistema possa despejar erros no ambiente, relativa à área de superfície, e assumindo a radiação de um corpo escuro, seja de 7.195 x 1042 bits por metro2 por segundo.
Limites computacionais da "poeira inteligente"

Na mesma época em que li o artigo "Limites Supremos", também li Uma Profundidade no Céu de Vernor Vinge, um dos muitos livros de ficção-científica que retratam alguma forma de "poeira inteligente." A poeira inteligente é um conceito de elementos computacionais mínimos espalhados pelo ambiente e que operam como computadores distribuídos de baixa energia. A poeira inteligente do livro de Vinge tinha capacidade suficiente para um manual de sistemas completo, o que a mim pareceu uma quantidade de armazenamento absurdamente grande para algo do tamanho de um grão de areia. Por isso eu me sentei e calculei os limites computacionais e de armazenamento de um computador que medisse apenas 1 μm3 de tamanho, sob as limitações impostas por sua matéria na forma de átomos, e não de plasma.

Lloyd calcula que, sob essas condições, o laptop supremo (de um quilo e um litro) pode armazenar em torno de 1025 bits e conduzir 1040 operações de bit único por segundo. O laptop supremo tem um litro, e há 1015 μm3 em um litro. Dividindo o armazenamento e as operações por segundo totais por 1015 nos leva a 1010 bits e 1025 operações por segundo - por volta de 1 gigabyte de armazenamento de dados e tantos FLOPS que os prefixos até perdem o sentido. Basicamente, o potencial computacional de uma poeira ultrapassa e muito o maior supercomputador do planeta - pirem, autores de ficção-científica! É claro que nenhum desses cálculos leva em conta a entrega de energia ou a largura de banda de entrada e saída, que pode acabar sendo bem mais importante aos limites da computação.


As implicações do laptop supremo


Calcular os limites do laptop supremo foi muito divertido, mas o que isso significa para a ciência da computação hoje? Sabemos o suficiente para termos uma base teórica genérica de por quanto a Lei de Moore terá efeito. Os laptops atuais armazenam 1012 bits e conduzem 1012 operações de bit único por segundo. O laptop supremo pode armazenar 1031 bits e conduzir 1051 operações de bit único por segundo, abismos fatoriais de 1019 e de 1039 respectivamente. Pelas estimativas de Lloyd, presumindo que a densidade de armazenamento e a velocidade computacional irão crescer em um fator de 108 em 50 anos, o limite do armazenamento será alcançado em uns 125 anos e o de operações por segundo em 250 anos. Imagina-se que os últimos 125 anos sejam de uma busca frenética por melhores algoritmos de compressão - ou de pesquisas físicas teóricas avançadas.

Quando a lei de Moore alcançar seu limite, a única maneira de aumentar o poder computacional será aumentar a massa e o volume do computador, e isso também acabará encontrando limites fundamentais. Um artigo não publicado intitulado Limites Universais da Computação estima que toda a capacidade computacional do universo se acabaria 600 anos antes da lei de Moore.

Até lá, teremos 250 anos fascinantes. É um bocado de tempo para ser relevante a nós que estamos vivos hoje, mas não é tempo suficientemente pequeno para ser ignorado. Os horizontes típicos de planejamento para empreitadas humanas de longo termo (como as relacionadas ao ecossistema) costuma chegar no máximo a uns 300 anos, então talvez não seja tão impensável começar a fazer planos para o fim da lei de Moore. Eu vou começar a trabalhar no algoritmo de compressão LZVH amanhã mesmo.

Uma coisa está clara: nós vivemos a Era de Ouro da computação. Vamos curtir ao máximo.

sexta-feira, 2 de maio de 2008

Facilidade de uso e popularização do Linux


Vejamos um exemplo hipotético: pense no gatinho siamês da sua vizinha e o compare com o gatinho que vive na lata de lixo da esquina. Agora, imagine que perto deles, passe um rato: o que vai acontecer? É óbvio que o gatinho da esquina não irá pensar duas vezes e correr atrás da sua nova caça! Já o gatinho da vizinha, vai apenas olhar com aquela "cara de curioso" e deixar o roedor passear. No máximo, vai correr atrás apenas para brincar e, assim que perder a graça, o deixará de lado...
Porque do gatinho da vizinha não corre atrás do rato? Simples: o bichano se acostumou tão bem com suas mordomias, que não há motivo para ficar correndo atrás de ratos; pelo menos não para se alimentar. Afinal de contas, é mais confortável esperar a sua dona chegar e servir sua deliciosa ração! Já o gato da esquina, coitado, se ele não for atrás do "rato-de-cada-dia"...
Agora, vamos imaginar que a dona do siamês ficou com peninha do vira-lata e resolve adotá-lo. Claro que de início, o bichano se estranha com o seu novo amiguinho! Mas aos poucos, com a presença dócil do siamês, com as carícias da nova dona, e com o conforto encontrado em seu novo lar, aos poucos o vira-lata vai se acomodando. Mais à frente, o jeitão do nosso querido vira-lata vai lembrar muito o siamês já residente, diferindo-se apenas pela pelagem. Sequer vai se incomodar com o ratinho abusado que passa na sua frente, já que a tijelinha de ração está logo ali.
Sei que muitos não vão gostar da comparação que irei fazer, mas acho que este bichano me lembra muito os atuais linuxers (especialmente os usuários de certas distribuições friendly-users). Seria uma mera coincidência?
O principal motivo pelo qual o Windows se tornou o sistema operacional mais difundido nos desktops está, sem dúvida, na facilidade de uso: muitas tarefas e atividades podem ser executadas com simples cliques do mouse! Graças a Microsoft, qualquer pessoa que possua apenas um conhecimento básico de computação, tem condições de (sub)utilizar o computador. E por parte do Linux, há tempos têm sido cobrado mais recursos e facilidades para tornar o sistema mais amigável para os usuários finais. Isto de fato é ruim? Não, mas alguns efeitos colaterais irão ocorrer...
Por volta de 1999, me achavam o "ban-ban-ban" do computador. Eu instalava o Windows com todos os drivers e os programas essenciais, além de prover os ajustes e as otimizações necessárias para o bom desempenho de um desktop. Até que um belo dia, eu ouvi falar "desse tal de Linux" e resolvi experimentar. Levei uma bela surra! Ainda bem que eu tive o bom senso de pelo menos fazer backups, já que tinha à disposição dois HDs (gravador de CD-R/W era coisa de luxo). Se não fosse o meu velho amigo Ferrugem em me ajudar a instalar o Conectiva 3 para mim...
Ainda não acabei! Depois de um bom tempo utilizando distribuições friendly-user, resolvi me arriscar com o Slackware. Levei outra surra, já que não conhecia sua maravilhosa filosofia; porém, já bem mais experimentado e confiante, resolvi insistir. Hoje, não só utilizo a distribuição, como sou um grande admirador do trabalho de Patrick Volkerding. Vida longa!
Agora posso dizer que me considero o "ban-ban-ban" do computador? Claro que não! Porém, durantes estes anos, garanto que obtive interessantes experiências que me possibilitaram ter vantagens inestimáveis. Desafios como utilizar a linha de comando, editar arquivos de configuração, compilar programas manualmente, conhecer especificações técnicas, entre outros, me mostraram que as provações são indispensáveis para o meu desenvolvimento intelectual. Em poucas palavras: me tornei mais inteligente, sagaz e capacitado. Ao menos, posso dizer que tenho mais consciência das minhas limitações.
Porém, uma situação interessante me fez refletir sobre o desenvolvimento do Linux. Há tempos, ao configurar o modo gráfico, não precisei editar o arquivo /etc/X11/xorg.conf e acrescentar os parâmetros necessários para que a "rodinha do mouse" fosse reconhecida. O sistema simplesmente inicializou no modo gráfico e pude utilizar todas as funcionalidades deste periférico. Em outra distribuição, nem sequer houve a necessidade de montar o meu pendrive: o KDE reconheceu que havia um dispositivo usb-storage e imediatamente acionou uma caixa de diálogo (aos moldes do Windows XP), disponibilizado algumas ações que poderiam ser tomadas sob meu critério.
E para variar, tenho observado que muitos artigos e tutorias lançados recentemente mostram que certas atividades podem ser feitas de modo tão simples no Linux quanto em comparação ao Windows, onde algumas ressaltam que nos sistemas livres é até mais fácil. Distribuições especiais em desktops também prometem inúmeras facilidades a alguns cliques do mouse ou através de painéis de controle centralizados. E claro, os mais acomodados adoram.
Voltando ao nosso gatinho vira-lata, vamos supor que ele tivesse incomodado a vizinhança com suas "cacas" e a dona (já sem pena) resolve botá-lo para fora: pega ele no colo, esfrega uma azeitona no seu focinho (para não farejar o caminho de volta; pelo menos, foi assim que minha avó me ensinou) e o carrega para bem longe! Nossa, com tantas mordomias, será que ele vai se readaptar novamente ao seu antigo ambiente? Provavelmente sim, já que se trata de uma questão de vida ou morte. Mas convenhamos, não seria mais interessante se o nosso querido vira-lata parasse em um outro quintal, à procura de uma nova dona carinhosa?
Estou querendo dizer que a adição de certas funcionalidades, processos de automatização e outros recursos que venham a facilitar nossas vidas não deveriam ser implementadas no Tux? Não exatamente: quaisquer melhorias serão bem vindas. Apenas gostaria que o sistema mantivesse o seu tradicional jeito de ser: aberto, flexível e customizável, além de nos possibilitar entender com facilidade o que acontece "por trás dos bastidores".

quinta-feira, 1 de maio de 2008

Um Pouco de História: Evolução do PC e Upgrade

Naquela época tanto quanto hoje, não existiam usuários, eram candidatos a usuários onde uma simples saída para o DOS virava motivo de chamar a "cavalaria" :). Interessante notar que a Base fazia vir um técnico do Rio para cá para que se pudesse fazer manutenção. Conhecedor de hard era coisa rara.

Meu amigo, o Ferrugem, aprendia "na porrada". Certo dia saiu listando o diretório e foi digitando tudo que era .EXE e .COM pra ver o que era, olhava e saía, até chegar a um tal de FORMAT.COM e quando viu a mensagem "formatando trilha 0, 1, 2, 3..." tentou sair e desesperadamente me chamou , quase teve um infarte. O HD era de 40MB e tínhamos cerca de 50 disquetes 5 1/4 360KB, passamos a tarde inteira pra colocar tudo de volta.

Era um bom micro pra banco de dados, lembro-me bem. Tomávamos conta de milhares de itens em estoque de alimentos e escritório, a resposta vinha em fração de segundos, pode crer. Era usado um soft em Dbase-III compilado por clipper. A demora acontecia quando íamos reindexar o banco de dados.

Em outro prédio da base ficava um outro XT só que sem HD, apenas 2 drives 360KB (0,36 MB, só pra imaginar). Para usar Dbase III era terrível, a todo tempo era solicitado um disco com a linguagem. Realmente o PC não nascera pra economizar memória. PC usável só com HD desde os primórdios.

Pra passar o tempo, um jogo muito legal era o Test Drive. Você escolhia o carro comparando as tabelas técnicas, tinha boa jogabilidade mas tinha o inconveniente de usar só as 4 cores máximas do PC na época, se bem que não era grande problema pois o monitor era verde mesmo. A visão era 3D, você se via dentro do carro mas sem configurações de câmera. Não tinha trilha sonora, limitávamos a ouvir o barulho do carro através do speaker. Quando tinha trilha sonora eram variações de beeps que faziam a melodia.

Ambiente gráfico não, mas surgiu nessa época um soft muito famoso usado até hoje por muitos, claro que em versões atualizadas, era o Banner, faixas pra ontem, a demora ficava por conta da impressora. A qualidade final era boa, sem aqueles pixels enormes.

Curioso notar também que praticamente não existia softs para edição gráfica, muito menos color. Mas um soft fazia muito sucesso, era o Super Print se não me engano, você fazia passo a passo montando a página até imprimir, as opções de letras eram poucas, umas 8 mas você podia fazer variações de tamanho e estilo, alguns desenhos prontos que você mudava posição e tamanho, no entanto sem uso de vetor, se ampliasse muito já viu, de perto eram tijolos formando a figura.

Um dia cheguei pro Sr. Imediato da base solicitando os super rápidos 286, sabe o que ele disse?, "Dá pra continuar usando por um tempo esses que temos?" respondi que sim, afinal dos 40MB acho que tínhamos mais de 15MB livres e a velocidade de consultas não comprometia o tempo, a conclusão foi clara, "Daqui a aprox. 5 anos compramos esses 286 que de qualquer forma estarão mais rápidos que o nosso e daí economizamos mais de 50% no custo final". Ele falou 5 anos mas creio que ele pôde realizar este objetivo antes. Eu saí da base e esse Imediato foi para outro estado.

Bom, a loucura que se seguiu a partir dessa época em torno do troca-troca de máquina, os famosos upgrades e etc. nos seguem até hoje, o que prova que o computador é um produto inacabado e também sabemos que na verdade isso é uma jogada das indústrias. Pra quê sair do 500 para o 550 se já tem o 1GB?, com isso ficam lançando merrecas pra encher lingüiça mantendo os preços nas alturas. Fazer o quê?, ser mais esperto que eles! Estudando o que você precisa de fato e qual configuração alcança os objetivos.