<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bit a Bit &#187; Internet</title>
	<atom:link href="http://www.bitabit.eng.br/categorias/tecnologia/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bitabit.eng.br</link>
	<description>O Blog da Engenharia de Computação da POLI-USP</description>
	<lastBuildDate>Wed, 11 Jan 2012 16:12:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Conheça os serviços em nuvem oferecidos pela Amazon Web Services</title>
		<link>http://www.bitabit.eng.br/2011/02/15/conheca-os-servicos-em-nuvem-oferecidos-pela-amazon-web-services/</link>
		<comments>http://www.bitabit.eng.br/2011/02/15/conheca-os-servicos-em-nuvem-oferecidos-pela-amazon-web-services/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 10:00:07 +0000</pubDate>
		<dc:creator>Rafael Barbolo Lopes, Coop10</dc:creator>
				<category><![CDATA[Avaliações]]></category>
		<category><![CDATA[Computação]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[amazon elastic compute cloud]]></category>
		<category><![CDATA[amazon web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[baixo custo]]></category>
		<category><![CDATA[caches]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cloudapp]]></category>
		<category><![CDATA[computadores]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[data warehousing]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[escalabilidade]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[instalação]]></category>
		<category><![CDATA[MapReduce]]></category>
		<category><![CDATA[mensagens]]></category>
		<category><![CDATA[nuvem]]></category>
		<category><![CDATA[organização]]></category>
		<category><![CDATA[plataforma]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1860</guid>
		<description><![CDATA[Neste post serão apresentados os serviços da Amazon Web Services oferecidos desde 2006 para empresas de todos os tamanhos. A Amazon foi pioneira em oferecimento de infraestrutura como serviço, ajudando a construir o que ficou conhecido como Computação em Nuvem (Cloud Computing) e levando a virtualização de servidores a um nível nunca antes visto. Os avanços [...]]]></description>
			<content:encoded><![CDATA[<p>Neste post serão apresentados os serviços da <a href="http://aws.amazon.com/" target="_blank">Amazon Web Services</a> oferecidos desde 2006 para empresas de todos os tamanhos.</p>
<p>A Amazon foi pioneira em oferecimento de infraestrutura como serviço, ajudando a construir o que ficou conhecido como <a href="http://www.slideshare.net/barbolo/computao-em-nuvem-3650947" target="_blank">Computação em Nuvem (<em>Cloud Computing</em>)</a> e levando a virtualização de servidores a um nível nunca antes visto. Os avanços das tecnologias de virtualização permitiram locação de serviços computacionais de forma escalável, flexível e ágil, em que a cobrança de acesso a esses serviços pode ser feita pelo tempo e quantidade de uso de cada recurso alocado.</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/amazon-web-services.png"><img class="size-medium alignright" title="Amazon Web Services" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/amazon-web-services-300x110.png" alt="" width="300" height="110" /></a></p>
<p><br/><br />
Atualmente, a Amazon oferece 24 serviços distribuídos nas categorias <strong>computação/processamento</strong>, <strong>distribuição de conteúdo</strong>, <strong>banco de dados</strong>, <strong>instalação e gerenciamento de serviços</strong>, <strong>e-commerce</strong>, <strong>mensagens</strong>, <strong>monitoramento</strong>, <strong>rede</strong>, <strong>pagamento e faturamento</strong>, <strong>armazenamento</strong>, <strong>suporte</strong>, <strong>análise de tráfego web</strong> e <strong>força de trabalho</strong>.</p>
<p><br/><br />
Segue a lista de serviços oferecidos pela Amazon Web Services:</p>
<p><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">COMPUTAÇÃO/PROCESSAMENTO</span></h3>
<h2 style="text-align: left;">Amazon Elastic Compute Cloud (EC2)</h2>
<p>O Amazon EC2 é o serviço que popularizou a computação em nuvem e é utilizado para criação de servidores virtuais na infraestrutura de nuvem da Amazon. Você pode escolher o Sistema Operacional, os softwares e os recursos que serão utilizados pelos servidores. Em poucos minutos uma instância de servidor virtual pode ser criada, sendo possível alterar os recursos alocados para ela em poucos instantes de forma manual ou automática.</p>
<p><br/></p>
<h2>Amazon Elastic MapReduce</h2>
<p>O Amazon Elastic MapReduce é um serviço que permite processamento de uma grande quantidade de dados utilizando o framework Apache Hadoop hospedado em clusters de servidores Amazon S3 e Amazon EC2. O serviço é usado para tarefas como indexação, mineração de dados, análise de logs, <em>data warehousing</em>, aprendizagem de máquina, análise financeira, simulação científica e pesquisas em bioinformática.</p>
<p><br/></p>
<h2>Auto Scaling</h2>
<p>O Auto Scaling permite que os servidores Amazon EC2 escalem automaticamente de acordo com definições estabelecidas para sua aplicação. Ele é útil, por exemplo, para alocar mais recursos em períodos de pico de forma automática.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">DISTRIBUIÇÃO DE CONTEÚDO</span></h3>
<h2>Amazon CloudFront</h2>
<p>O Amazon CloudFront é um serviço que permite distribuição de conteúdo com baixa latência e alta taxa de transferência, usando caches em provedores de Internet de várias regiões do mundo (o Brasil ainda não está nessa lista, então não há vantagens em usar em aplicações brasileiras). Ele é utilizado para distribuir conteúdos estáticos ou streamings de mídias, funcionando de maneira parecida com o <a href="http://www.akamai.com/html/solutions/media_delivery.html" target="_blank">Akamai Media Delivery</a>.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">BANCO DE DADOS</span></h3>
<h2>Amazon SimpleDB</h2>
<p>O Amazon SimpleDB é um sistema de armazenamento de dados não relacional de alta disponibilidade, escalável e flexível oferecido como serviço pela Amazon, deixando o desenvolvedor sem preocupações com administração do banco de dados, mas apenas com a modelagem dos dados que serão indexados. O serviço garante redundância, segurança, disponibilidade, confiabilidade, escalabilidade ou velocidade de acesso aos dados armazenados.</p>
<p>Ele é usado por aplicações que precisam apenas indexar e consultar dados, sem envolver transações complexas ou joins.</p>
<p><br/></p>
<h2>Amazon Relational Database Service (RDS)</h2>
<p>O Amazon RDS é um serviço que provê um banco de dados relacional com as mesmas funcionalidades do MySQL, mas totalmente administrado pela Amazon. É possível configurar backups automáticos, adicionar ou remover recursos de maneira rápida e fácil, e configurar réplicas que aumentam disponibilidade, confiabilidade ou velocidade de acesso aos dados.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">INSTALAÇÃO E GERENCIAMENTO DE SERVIÇOS</span></h3>
<h2>Amazon Elastic Beanstalk</h2>
<p>O Amazon Elastic Beanstalk é um serviço oferecido gratuitamente pela Amazon que permite realizar instalação (<em>deploy</em>) e gerenciamento de aplicações em nuvem de maneira muito simples, automaticamente criando instâncias (estas são pagas) de servidores EC2, S3, EBS etc. Ele é muito parecido com uma Plataforma como Serviço em Nuvem (<em>heroku</em>, <em>google app engine</em>), porém oferece maior controle sobre os recursos e softwares disponibilizados pela infraestrutura.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">E-COMMERCE</span></h3>
<h2>Amazon Fulfillment Web Service (FWS)</h2>
<p>Este é um serviço um pouco mais complexo de entender. A Amazon permite que um vendedor terceirize para ela a entrega de produtos. O vendedor pode enviar seus produtos para a Amazon, ela estoca seus produtos, e quando um consumidor realiza a compra de um produto, a Amazon embrulha o pedido e realiza a entrega. O Amazon FWS é um serviço que permite que aplicações de vendedores se integrem automaticamente com o serviço de entrega da Amazon, enviando informações sobre pedidos através de Web Services.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">MENSAGENS</span></h3>
<h2>Amazon Simple Queue Service (Amazon SQS)</h2>
<p>O Amazon SQS é um serviço que permite criar filas de mensagens na nuvem. Você pode construir fluxos de trabalho (como <em>pipelines</em>) que se comunicam através de filas e cada estágio do seu fluxo pode esperar por uma mensagem de um outro estágio para executar. Uma mensagem pode ser armazenada por até 14 dias e só pode ser lida simultaneamente por uma instância, sendo bloqueada enquanto é processada. Caso o processamento da mensagem falhe, ela volta a ficar disponível na fila; caso contrário, ela é excluída da fila.</p>
<p><br/></p>
<h2>Amazon Simple Notification Service (Amazon SNS)</h2>
<p>O Amazon SNS é um serviço que permite enviar notificações (como um <em>ping</em>) através da nuvem. Ele facilita o processo de envio de mensagens via HTTP, SMTP ou outro protocolo por aplicações, integrando módulos ou mantendo assinantes de conteúdo atualizados.</p>
<p><br/></p>
<h2>Amazon Simple Email Service (Amazon SES)</h2>
<p>O Amazon SES é um serviço de envio de e-mails altamente escalável e de baixo custo. É uma alternativa aos serviços de e-mail marketing ou à construção de um sistema de envio de e-mails <em>in-house</em>. A Amazon possui acordos com provedores de Internet para garantir que as mensagens sejam corretamente enviadas e não sejam bloqueadas. O serviço pode ser integrado a uma aplicação através de acesso ao SMTP do Amazon SES ou através de web services que recebem cabeçalhos e conteúdos de e-mails a serem enviados.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">MONITORAMENTO</span></h3>
<h2>Amazon CloudWatch</h2>
<p>O Amazon CloudWatch é um serviço que permite monitorar outros serviços oferecidos pela Amazon. Ele permite visualizar utilização de recursos, desempenho operacional e demandas de acesso aos serviços monitorados. As versões do Amazon CloudWatch mais simples de monitoramento são gratuitas e as mais detalhadas são pagas.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">REDE</span></h3>
<h2>Amazon Route 53</h2>
<p>O Amazon Route 53 é um serviço de consulta de DNS altamente disponível e escalável, resolvendo rapidamente endereços de domínios públicos e retornando a resposta com baixa latência. Ele também permite criar e gerenciar seus registros DNS.</p>
<p><br/></p>
<h2>Amazon Virtual Private Cloud (VPC)</h2>
<p>O Amazon VPC é um serviço que permite a integração entre a infraestrutura de uma organizacão com os serviços da Amazon de forma segura e reservada. Ele cria uma rede privada na infraestrutura da Amazon que só é acessada pela organização, através de uma VPN.</p>
<p><br/></p>
<h2>Elastic Load Balancing</h2>
<p>O Elastic Load Balancing é um serviço oferecido pela Amazon que automaticamente distribui requisições de acesso à aplicação para instâncias de Amazon EC2 ativas, balanceando a carga por diversos servidores. Com essa solução, é possível aumentar a tolerância a falhas, a velocidade de acesso e a disponibilidade de uma aplicação.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">PAGAMENTO E FATURAMENTO</span></h3>
<h2>Amazon Flexible Payments Service (Amazon FPS)</h2>
<p>O Amazon FPS é um serviço similar ao Paypal, que permite que desenvolvedores criem aplicações capazes de gerar faturas e receber dinheiro de consumidores.</p>
<p><br/></p>
<h2>Amazon DevPay</h2>
<p>O Amazon DevPay permite que empresas vendam acesso a aplicações construídas com os serviços oferecidos pela Amazon Web Services. O dono da aplicação rodando na infraestrutura da Amazon pode definir os parâmetros relacionados aos serviços da Amazon Web Services que estarão relacionados com o preço de venda do serviço de sua aplicação, e com isso gerar faturas sob demanda para cobrança de seus clientes.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">ARMAZENAMENTO</span></h3>
<h2>Amazon Simple Storage Service (Amazon S3)</h2>
<p>O Amazon S3 é um serviço de armazenamento de arquivos na Internet. Ele oferece web services que podem ser usados para armazenar ou recuperar qualquer quantidade de dados, a qualquer hora, de qualquer lugar da Internet. Os dados podem ser definidos como públicos ou privados, sendo possível especificar direitos de acesso para usuários específicos.</p>
<p><br/></p>
<h2>Amazon Elastic Block Store (EBS)</h2>
<p>O Amazon EBS é um serviço que disponibiliza blocos de armazenamento persistentes para serem usados em conjunto com instâncias do Amazon EC2. Um bloco de dados do Amazon EBS persiste independentemente do tempo de vida de uma instância do Amazon EC2. Este serviço é especialmente útil quando a aplicação rodando no Amazon EC2 precisa de um banco de dados ou de um sistema de arquivos persistente com alta disponibilidade ou confiabilidade.</p>
<p><br/></p>
<h2>AWS Import/Export</h2>
<p>O AWS Import/Export é um serviço usado para transferência de uma quantidade de dados muito grande para servidores da Amazon Web Services. Você deve preparar um dispositivo de armazenamento (como um HD ou um pendrive), enviar para a Amazon e ela se encarrega de copiar os dados do dispositivo para os servidores ou dos servidores para o dispositivo. Este serviço é considerado relevante para os casos em que a transferência de dados pela rede de Internet é muito intensa e levaria muito tempo para concluir.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">SUPORTE</span></h3>
<h2>AWS Premium Support</h2>
<p>O AWS Premium Support é um serviço de suporte pago de alta qualidade oferecido pela Amazon com o objetivo de ajudar clientes a utilizarem os serviços oferecidos pela Amazon Web Services.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">ANÁLISE DE TRÁFEGO WEB</span></h3>
<h2>Alexa Web Information Service</h2>
<p>O Alexa Web Information Service é um web service que disponibiliza o repositório de informações sobre tráfego e estrutura da Internet desenvolvido pela <a href="http://www.alexa.com/">Alexa</a>.</p>
<p><br/></p>
<h2>Alexa Top Sites</h2>
<p>O Alexa Top Sites é um web service que fornece acesso a listas de web sites ordenados pelo Alexa Traffic Rank. É possível obter listas de web sites top 1.000, 5.000 ou 100.000, com informações como número médio de visualizações por usuário, número de usuários Alexa visitando o site ou número de visualizações para cada 1 milhão de usuários.</p>
<p><br/><br/></p>
<h3 style="text-align: right;"><span style="color: #ff9900;">FORÇA DE TRABALHO</span></h3>
<h2>Amazon Mechanical Turk</h2>
<p>O Amazon Mechanical Turk é um mercado de compra e venda de trabalho que exige inteligência humana. O web service do Mechanical Turk permite que desenvolvedores enviem tarefas a serem realizadas por humanos (Human Intelligence Taks ou &#8220;HITs&#8221;) e, desta forma, construir aplicações com inteligência humana.</p>
<p><br/><br/><br/></p>
<h2>Considerações</h2>
<p>Alguns serviços da Amazon são caros para aplicações simples ou empresas que estão iniciando. Por exemplo, um banco de dados MySQL no RDS custa cerca de U$ 70,00/mês em sua versão mais simples. Porém, para aplicações complexas, que podem demandar muitos recursos computacionais, ou para empresas que esperam alta disponibilidade, confiabilidade e segurança de dados, as soluções da Amazon se encaixam perfeitamente e de forma barata.</p>
<p><br/><br />
Eu vejo muitos desenvolvedores usando o Amazon EC2 como se fosse um servidor dedicado. Ele está longe disso e não foi construído com tal finalidade. Ele é um servidor de aplicação, e por isso oferece poucas garantias para uso de bancos de dados ou armazenamento de arquivos. Considere utilizá-lo em conjunto com outras soluções, como o Amazon EBS ou o Amazon S3.</p>
<p><br/><br />
As documentações completas de todos os serviços oferecidos pela Amazon podem ser encontradas no link:</p>
<p><a href="http://aws.amazon.com/documentation/">http://aws.amazon.com/documentation/</a></p>
<p><br/><br/></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1860&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2011/02/15/conheca-os-servicos-em-nuvem-oferecidos-pela-amazon-web-services/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conectividade IPv6 em casa – Parte 1</title>
		<link>http://www.bitabit.eng.br/2011/02/03/conectividade-ipv6-em-casa-%e2%80%93-parte-1/</link>
		<comments>http://www.bitabit.eng.br/2011/02/03/conectividade-ipv6-em-casa-%e2%80%93-parte-1/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 01:55:39 +0000</pubDate>
		<dc:creator>Hernan Martinez, Comp08</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[6in4]]></category>
		<category><![CDATA[heartbeat]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[sixxs]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1829</guid>
		<description><![CDATA[Ola pessoal. Conversando com os colegas da lista de e-mail de computação da POLI resolvi escrever este meu primeiro post explicando como obter conectividade IPv6 em casa desde já. Espero assim ajudar a estarem preparados parar o World IPv6 que ocorrerá dia 8 de Junho de 2011. Neste primeiro post falarei como obter um túnel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6.png"><img class="alignright size-full wp-image-1851" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6.png" alt="" width="162" height="113" /></a>Ola pessoal. Conversando com os colegas da lista de e-mail de computação da POLI resolvi escrever este meu primeiro post explicando como obter conectividade IPv6 em casa desde já. Espero assim ajudar a estarem preparados parar o <a href="http://isoc.org/wp/worldipv6day/">World IPv6</a> que ocorrerá dia 8 de Junho de 2011.</p>
<p>Neste primeiro post falarei como obter um túnel que lhe dará apenas um IPv6 Real (global unicast) e fixo. Na Parte 2 falarei como obter toda uma sub-rede para que você possa dar à todos os dispositvos da sua casa um IPv6 real sem NAT.</p>
<p>Não falarei muito sobre formas de endereçamento do IPv6 pois devo me focar em como conseguir conectividade em casa através de túneis, apenas lembrando que são 128 bits, dos quais 48 são de prefixo, 16 de sub-rede e 64 de identificador de host em uma sub-rede. Para mais detalhes sugiro ler o curto artigo na Wikipédia sobre <a href="http://en.wikipedia.org/wiki/IPv6_address">endereçamento IPv6</a>.</p>
<h2>Tunnel Brokers</h2>
<p>Para conseguir conectividade IPv6 quando o nosso provedor não nos fornece IPv6 nativamente devemos usar um dos métodos de transição que já foram criados e normalizados com este intuito. Um deles é o 6in4, que utiliza-se de um stream de pacotes IPv4 entre dois nós da rede sobre o qual são encapsulados os pacotes IPv6. Este protocolo de encapsulamento utilzado pelo 6in4 é o <a href="http://tools.ietf.org/html/rfc2473">protocolo-41</a> (41 é o número que irá aparecer no campo Protocol do cabeçalho do pacote IPv4) chamado de <em>IPv6 Encapsulation</em>.</p>
<p>Para conseguirmos nos conectar à Internet através de IPv6 precisamos de um nó que receba os pacotes IPv4 , desencapsule-os e os encaminhe à Internet IPv6 fazendo também o sentido contrário.</p>
<p>Os Tunnel Brokers são serviços que permitem a requisição de uma conectividade IPv6 e existem alguns gratuitos como o projeto SixXS com um ponto de acesso (nó que irá nos conectar à internet via IPv6) no Brasil. Por este motivo falarei mais de como obter um túnel no site <a href="http://www.sixxs.net/">www.sixxs.net</a>.</p>
<div id="attachment_1841" class="wp-caption aligncenter" style="width: 673px"><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6_cloud.png"><img class="size-full wp-image-1841" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6_cloud.png" alt="" width="663" height="290" /></a><p class="wp-caption-text">Conectividade IPv6 com encapsulamento sobre IPv4</p></div>
<p style="text-align: center">
<h2>SixXS</h2>
<p>O Tunnel Broker SixXS é gratuito. Porém para obtermos um túnel precisaremos seguir a <a href="http://www.sixxs.net/faq/account/?faq=10steps">receita de bolo</a>:</p>
<p>Crie um Handle/Login no site <a href="http://www.sixxs.net/signup/create/">www.sixxs.net</a>. Tal Handle serve para identificar você legalmente então você deve preencher corretamente os dados pedidos. Isto é necessário para evitar que usuários utilizem a conectividade como uma forma de se tornarem anônimos e realizar ações ilegais na Internet.</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/warn_icon.png"><img class="alignleft size-full wp-image-1844" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/warn_icon.png" alt="" width="16" height="13" /></a> Se você se deparar com avisos de perigo ao se logar no site com HTTPS você pode ignorá-los e continuar o acesso ao site, porém para não obter mais estes erros você deve instalar o Certificado de Raiz da CACert.org Classe 1 no formato PEM do site da <a href="http://www.cacert.org/index.php?id=3">CACert.org</a></p>
<p>Responda ao e-mail de verificação e espere de 1 dia até 1 semana (porém no meu caso foram apenas 12 horas) pelo e-mail de confirmação com o seu Handle/Login e Senha. A verificação é feita manualmente pelo pessoal do SixXS e por isso a demora.</p>
<h2>Escolhendo o tipo de Túnel</h2>
<p>Antes de prosseguirmos com a requisição de um túnel com IPv6 Real e Fixo, deve-se decidir qual tipo de túnel irá ser requisitado. Escolha:</p>
<ul>
<li><em>6in4-static</em> – Quando você possui IPv4 real e fixo;</li>
<li><strong><em>6in4-heartbeat</em></strong> – Quando você possui IPv4 real variável (caso mais comum com PCs ligados diretamente à internet) OU quando você está atrás de um NAT  (isto é, o roteador possui o IPv4 real variável mas você possui um IP de rede privada como 192.168.x.x por exemplo) e pode configurar o seu IP local no DMZ do roteador de forma que todos os pacotes que vêm da Internet e vão para o IPv4 real do roteador doméstico sejam encaminhados pelo NAT para o seu IP local da forma 192.168.x.x;</li>
<li><em>AYIYA</em> – Quando você está atrás de um NAT e não há como configurar o DMZ do seu roteador.</li>
</ul>
<p>Neste post falarei apenas do segundo tipo de túnel que é o mais comum em cenários residenciais e é o qual eu uso em casa atualmente.</p>
<h2>Requisitando e obtendo um Túnel</h2>
<p>Logue e faça o request de um Túnel, escolhendo o Ponto De Acesso mais próximo a você. Por enquanto o único no Brasil fica em Uberlândia, MG e pelos meus testes, possui apenas 40ms de latência. O nome do PoP é <strong>brudi01</strong>. Quando for preencher o motivo pelo qual você escolheu este PoP pode dizer que é o único em seu país.</p>
<p>Novamente o seu pedido será analisado pelo pessoal do SixXS e a resposta deverá chegar no dia seguinte. Logue novamente no site e veja que agora há um túnel na sua lista de túneis. Clique nele.</p>
<div id="attachment_1838" class="wp-caption aligncenter" style="width: 729px"><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6_tunnels.png"><img class="size-full wp-image-1838 " src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6_tunnels.png" alt="" width="719" height="85" /></a><p class="wp-caption-text">Exemplo de túnel 6in4 heartbeat aprovado</p></div>
<p>Os dados mais importantes que você deverá ter em mãos quando for configurar o túnel no seu computador são:</p>
<p><img class="alignright size-medium wp-image-1839" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/ipv6_tunnel-300x196.png" alt="" width="300" height="196" /></p>
<ul>
<li>PoP IPv4</li>
<li>IPv6 Prefix</li>
<li>Your IPv6</li>
</ul>
<p>Neste instante você possui apenas um IPv6 fixo real e um gateway padrão IPv6. No exemplo ao lado o endereço é 2001:1291:200:200::2 e o  gateway padrão é 2001:1291:200:200::1. A máscara de sub-rede é /64, isto é, 64 bits à esquerda são ‘1’s e os restantes à direita são ‘0’s.</p>
<h2>Configurando o túnel no Windows Vista/7</h2>
<p>Agora você irá <a href="http://www.sixxs.net/faq/connectivity/?faq=ossetup&amp;os=windows">criar e configurar</a> o adaptador virtual 6in4 do seu computador através do comando <a href="http://technet.microsoft.com/en-us/library/cc740203(WS.10).aspx">netsh</a>, pois infelizmente o Windows não exibe o adaptador virtual nas Conexões de Rede. Para isto abra o Prompt de Comando <strong>como Administrador</strong> e digite :</p>
<p>1) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh in ipv6 add v6v4tunnel sixxs [seu endereço ipv4] [endereço ipv4 do PoP]</span></p>
<p>Isto irá criar o adaptador virtual de túnel.</p>
<p>O campo [seu ipv4] deverá ser o seu IPv4 da internet (caso você esta conectado diretamente à Internet) ou o seu IPv4 Local (caso você esteja atrás de um NAT, mas não esqueça de configurar este IP Local no <strong>DMZ</strong> do seu roteador!!!!).</p>
<p>2) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh in ipv6 add address sixxs [seu endereço IPv6]</span></p>
<p>Isto irá definir o IPv6 real e fixo ao seu adaptador virtual recém criado</p>
<p>3) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh in ipv6 add route [Prefixo IPv6, 64 bits à esq. apenas]/[Tamanho da máscara de sub-rede] sixxs</span></p>
<p>Isto irá dizer à tabela de roteamento qual o seu prefixo e a sua máscara de sub-rede e também que para acessar a sub-rede IPv6 (entre você e o seu PoP, deve-se usar a interface “sixxs” diretamente sem roteadores). Ignore caso o netsh retorne que esta rota já existe.</p>
<p>4) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh interface ipv6 add route 0::/0 sixxs publish=yes</span></p>
<p>Isto irá dizer à tabela de roteamento que para acessar a rede 0::/0 (ou seja , toda a Internet IPv6) deve-se utilizar a interface “sixxs”.</p>
<p>Finalmente, se estiver no Windows Vista:</p>
<p>5) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh firewall set icmpsetting SixXS enable all</span></p>
<p>Isto irá permitir que o computador seja &#8220;pingado&#8221;</p>
<p>Exemplos de alguns comandos:</p>
<p>Com uma conexão direta à Internet com  IPv4 real 189.56.76.123</p>
<p>1) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh in ipv6 add v6v4tunnel sixxs 189.56.76.123 201.48.254.14</span></p>
<p>OU, se for rede local atrás de NAT com IPv4 local 192.168.0.11</p>
<p>1) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh in ipv6 add v6v4tunnel sixxs 192.168.0.11 201.48.254.14</span></p>
<p>2) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh interface ipv6 add address sixxs 2001:1291:200:200::2</span></p>
<p>3) <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">netsh interface ipv6 add route 2001:1291:200:200::/64 sixxs</span></p>
<p>No passo 3 verifique que não foi utilizado o último algarismo “1”,  do prefixo, pois o prefixo é toda a parte do endereço que bate com a máscara (apenas 64 bits à esquerda) e o endereço 2001:1291:200:200::1 é na verdade o endereço IPv6 do seu PoP.</p>
<h2>Mantendo o PoP informado da mudança do seu endereço IPv4 Real</h2>
<p>O projeto SixXS criou um programa chamado <a href="http://www.sixxs.net/tools/aiccu/">AICCU</a> para, entre outras coisas, implementar o protocolo de <a href="http://www.sixxs.net/tools/heartbeat/">heartbeat</a> mantendo o túnel ativo e informando ao PoP qual o seu IPv4 real.</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/02/warn_icon.png"><img class="alignleft size-full wp-image-1844" src="http://www.bitabit.eng.br/wp-content/uploads/2011/02/warn_icon.png" alt="" width="16" height="13" /></a> Deve-se estar com o relógio do computador atualizado, pois o heartbeat usa ticks com timestamp para manter o túnel ativo.</p>
<p>Há duas versões, a console e gui. No momento, se você estiver usando Windows 64 bits com o túnel tipo AYIYA você deve utilizar a versão console, mas como estamos utilizando um túnel do tipo 6in4-heartbeat, a versão gui nos serve. Faça <a href="http://www.sixxs.net/tools/aiccu/">download</a> do mesmo.</p>
<p>Abra o AICCU, logue com o seu Handle e Senha, escolha o seu túnel, marque Behind Nat se você estiver atrás de um NAT, e clique em Enable. Se você quiser que o túnel seja ativo automaticamente quando abrir o AICUU marque Auto Enable.</p>
<p>Feche a janela e o AICCU irá se minimizar. Você deve mantê-lo rodando para manter o túnel funcionando.</p>
<h2>DNS com IPv6</h2>
<p>A resolução de nomes DNS é independente da versão do IP que você usa para fazer pedidos DNS aos servidores DNS.</p>
<p>Por exemplo, os servidores DNS do Google 8.8.8.8 e 8.8.4.4 retornam tanto endereços v4 quanto v6  para o nome <a href="http://www.google.com/">www.google.com</a></p>
<p>O importante é que você deve utilizar servidores DNS que retornem endereços IPv6 também. Sugiro o uso dos servidores DNS do Google que permitem o acesso o Facebook através de <a href="http://www.v6.facebook.com/">www.v6.facebook.com</a> ou <a href="http://ipv6.google.com/">http://ipv6.google.com</a>.</p>
<h2>Testando a conexão</h2>
<p>Tente <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px;font-size: 12px">ping ipv6.google.com</span></p>
<p>Acesse <a href="http://www.sixxs.net/">www.sixxs.net</a> e verifique no rodapé que o site reconheceu que a sua conexão foi feita por IPv6.</p>
<p>Acesse <a href="http://www.v6.facebook.com/">www.v6.facebook.com</a>.</p>
<p>O site <a href="http://test-ipv6.com/">Test-IPv6</a> é uma ótima forma de testar a conectividade IPv6.</p>
<h2>Parte 2</h2>
<p>No próximo post , mostrarei como obter uma sub-rede com prefixo /48, tornar o seu computaor, que possui o Adaptador Virtual IPv6, um roteador IPv6, e permitir que você tenha 2^16 subredes em casa cada uma com 2^64 dispositivos; todos com IPv6 reais (Global Unicast) da Internet.</p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1829&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2011/02/03/conectividade-ipv6-em-casa-%e2%80%93-parte-1/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Yahoo Pipes</title>
		<link>http://www.bitabit.eng.br/2011/01/24/yahoo-pipes/</link>
		<comments>http://www.bitabit.eng.br/2011/01/24/yahoo-pipes/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 10:10:51 +0000</pubDate>
		<dc:creator>Eduardo Russo, Coop10</dc:creator>
				<category><![CDATA[Busca]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[filtro]]></category>
		<category><![CDATA[fluxo]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[pipes]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[séries]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1767</guid>
		<description><![CDATA[Olá, meu nome é Eduardo Russo e faz 3 minutos que não acesso o Google Reader. Sim, sou um viciado em RSS e esse vício me fez querer filtrar o que acesso e até transformar o que não é RSS em RSS. A melhor maneira que encontrei para fazer isso foi o Yahoo Pipes, que, [...]]]></description>
			<content:encoded><![CDATA[<p>Olá, meu nome é Eduardo Russo e faz 3 minutos que não acesso o <a href="http://pt.wikipedia.org/wiki/Google_Reader" target="_blank">Google Reader</a>. Sim, sou um viciado em <a href="http://pt.wikipedia.org/wiki/RSS" target="_blank">RSS</a> e esse vício me fez querer filtrar o que acesso e até transformar o que não é RSS em RSS.</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/01/pipeslogo_whitebg.gif"><img class="alignright size-full wp-image-1768" title="pipeslogo_whitebg" src="http://www.bitabit.eng.br/wp-content/uploads/2011/01/pipeslogo_whitebg.gif" alt="" width="119" height="45" /></a>A melhor maneira que encontrei para fazer isso foi o <a href="http://pipes.yahoo.com/pipes/" target="_blank">Yahoo Pipes</a>, que, de maneira resumida, é um gerador de fluxo, com diversas possibilidades de filtros e ações.Para explicar melhor o que o Pipes faz, é mais fácil dar exemplos.</p>
<p>Assinava o <a href="http://pt.wikipedia.org/wiki/Feeds" target="_blank">feed</a> do <a href="http://lifehacker.com/" target="_blank">Lifehacker</a> completo, mas, meu real interesse eram dicas sobre Macs. Para tal, filtrava com o poder do meu cérebro, tentando, rapidamente, achar a palavra &#8220;Mac&#8221; nas notícias. Obviamente perdia muito tempo e a taxa de erro era imensa. Fazer um programa em PHP, Ruby on Rails ou qualquer outra coisa similar, seria fácil, mas, não tanto quanto criar um fluxo no Yahoo Pipes.</p>
<p>Para isso, basta ter uma conta do Yahoo, acessar o Pipes e começar a criar. Ou, ainda, buscar por fluxos que outros criaram e que servem ao seu propósito.</p>
<p>Esse do Lifehacker é bem simples, mas dá pra fazer coisas inacreditáveis. Cheguei a criar um fluxo que dava <a href="http://pt.wikipedia.org/wiki/An%C3%A1lise_sint%C3%A1tica_%28computa%C3%A7%C3%A3o%29" target="_blank">parse </a>num HTML para gerar um RSS. Não é a coisa mais fácil do mundo – qualquer um que já tentou encontrar lógica num HTML sabe do que estou falando –, mas, é bem mais fácil do que fazer seu próprio programa, arrumar um local na web para colocá-lo e só então poder usá-lo.</p>
<p>Como se vê a seguir, meu fluxo pega o feed do Lifehacker e busca em cada campo pelas palavras &#8220;mac&#8221;, &#8220;os x&#8221; ou &#8220;ios&#8221; e colocam isso no output.</p>
<div id="attachment_1770" class="wp-caption aligncenter" style="width: 764px"><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/01/yahoo-pipes-mac-on-lifehacker.png"><img class="size-full wp-image-1770" title="yahoo pipes - mac on lifehacker" src="http://www.bitabit.eng.br/wp-content/uploads/2011/01/yahoo-pipes-mac-on-lifehacker.png" alt="Filtros e output do Yahoo Pipes do Lifehacker" width="754" height="410" /></a><p class="wp-caption-text">Filtros e output do Yahoo Pipes do Lifehacker.</p></div>
<p style="text-align: left;">A ferramenta funciona com <a href="http://pt.wikipedia.org/wiki/Drag-and-drop" target="_blank">drag-and-drop</a>. Na esquerda, existem diversas opções de entrada, filtros e lógicas que podem ser aplicadas. Basta selecionar e juntar de maneira sequencial as ações.</p>
<p style="text-align: left;">Outra sequencia que criei foi para filtrar as novas legendas do <a href="http://legendas.tv/" target="_blank">Legendas.tv</a> para ver apenas as séries que eu acompanho. Não está 100% ainda, pois a busca é com &#8220;ous&#8221; e, portanto, tenho que remover coisas como &#8220;desperate&#8221; para que ele ache &#8220;house&#8221;, mas não &#8220;desperate housewifes&#8221;. Mas, com certeza filtrar manualmente algumas coisas incorretas é bem mais fácil do que o processo antigo.</p>
<div id="attachment_1771" class="wp-caption aligncenter" style="width: 767px"><a href="http://www.bitabit.eng.br/wp-content/uploads/2011/01/yahoo-pipes-series-on-legendas.tv_.png"><img class="size-full wp-image-1771" title="yahoo pipes - series on legendas.tv" src="http://www.bitabit.eng.br/wp-content/uploads/2011/01/yahoo-pipes-series-on-legendas.tv_.png" alt="Filtros e output do Yahoo Pipes do Legendas.tv" width="757" height="406" /></a><p class="wp-caption-text">Filtros e output do Yahoo Pipes do Legendas.tv</p></div>
<p style="text-align: left;">Neste exato momento, estou criando um Pipe para tentar transformar em RSS as <a href="http://cetsp1.cetsp.com.br/institucional/rodizio/default.asp" target="_blank">suspensões de rodízio de SP da CET</a>. Será um parto, mas, sei que é possível. Para ver meus Pipes, basta entrar no <a href="http://pipes.yahoo.com/pipes/person.info?guid=LJQTE6242D6UEDHWIVVCALWPJI" target="_blank">meu perfil</a>. Se você tem algum Pipe interessante ou alguma dica e quer compartilhar, deixe nos comentários.</p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1767&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2011/01/24/yahoo-pipes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Empresa de hospedagem diz que se o site está no Brasil ele está melhor posicionado no Google</title>
		<link>http://www.bitabit.eng.br/2010/08/24/empresa-de-hospedagem-diz-que-se-o-site-esta-no-brasil-ele-esta-melhor-posicionado-no-google/</link>
		<comments>http://www.bitabit.eng.br/2010/08/24/empresa-de-hospedagem-diz-que-se-o-site-esta-no-brasil-ele-esta-melhor-posicionado-no-google/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 18:04:03 +0000</pubDate>
		<dc:creator>Rafael Barbolo Lopes, Coop10</dc:creator>
				<category><![CDATA[Busca]]></category>
		<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[censura]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hospedagem]]></category>
		<category><![CDATA[kinghost]]></category>
		<category><![CDATA[servicos]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1352</guid>
		<description><![CDATA[Este post é motivado por uma discussão que eu tive na Comunidade Magento Brasil. Até ontem eles abrigavam um artigo que incentivava os usuários a usarem a hospedagem do KingHost. Eu deixei meu comentário nessa discussão e o artigo foi removido. Eu também deixei meu comentário no blog oficial do KingHost, porém eles não o [...]]]></description>
			<content:encoded><![CDATA[<p>Este post é motivado por uma discussão que eu tive na <a href="http://www.comunidademagento.com.br/">Comunidade Magento Brasil</a>. Até ontem eles abrigavam um artigo que incentivava os usuários a usarem a hospedagem do <a href="http://www.kinghost.com.br/">KingHost</a>. Eu deixei meu comentário nessa discussão e o artigo foi removido.</p>
<p>Eu também deixei meu <a href="http://blog.kinghost.com.br/2009/07/matt-cuts-comprova-localizacao-do-servidor-faz-diferenca-no-posicionamento-do-seu-site-no-google/">comentário no blog oficial do KingHost</a>, porém eles não o aprovaram.</p>
<p>Eu não quero dizer o que penso sobre essas instituições neste artigo (mesmo porque não conheço elas muito bem), mas gostaria de deixar meu comentário a respeito do assunto registrado aqui, no <a href="http://www.bitabit.eng.br/sobre_o_bit_a_bit/">Bit a Bit</a>, que é um blog aberto e sem censura.</p>
<p>Para vender seus serviços, o KingHost argumenta que a localização de um site influencia o posicionamento do seu site no ranking do Google quando a busca é feita no Brasil. Até aí sem problemas, de fato a geolocalização de um site influencia no resultado da busca. Se você buscar por &#8220;Barbolo&#8221; no <a href="http://www.google.com.br/search?hl=pt-BR&#038;q=barbolo">Google Brasil</a> e no <a href="http://www.google.com/search?hl=en&#038;q=barbolo">Google EUA</a> verá que os resultados divergem bastante.</p>
<p>O que eu não achei correto (moralmente e tecnicamente) foi a conclusão deles:</p>
<p><em><strong>Conclusão, de acordo com palavras do Engenheiro de Software do Google Matt Cuts: Hospedagem no Brasil faz diferença para o teu site ser bem rankeado no Google!</strong></em></p>
<p><br/></p>
<p>Meu comentário:</p>
<p><em><br />
O Google pode usar IPs dos servidores como um dos recursos para adivinhar o país de origem de um site. Além deste recurso, ele também pode usar o domínio, a língua do site, os países de origem dos sites que apontam para ele, entre outros. O IP é possivelmente um dos recursos mais insignificantes.</p>
<p>Além disso, o Google oferece em sua <a href="http://www.google.com/webmasters/">Central de Webmasters</a> a opção de você definir o país de origem do seu site. Ou seja, se você quiser hospedar seu site na Lua, mas o conteúdo dele for em português, ou se ele estiver inserido em contextos brasileiros ou se você se cadastrar na central de webmasters e configurar seu país de origem como Brasil, o local de hospedagem pouco importará no ranking brasileiro do Google.</p>
<p>Eu tenho cerca de 4 servidores contratados fora do país, cerca de 10 domínios gerenciados por mim. Nunca tive problema com o ranking do Google por causa disso.</p>
<p>Existem diversos motivos para se hospedar sites no exterior, com certeza o principal é o preço. Você consegue servidores muito melhores por preços muito menores fora do Brasil. O tempo de resposta desses servidores realmente será maior do que o de um servidor hospedado no Brasil (os pacotes trocados com seu computador vão passar por um caminho maior e por uma quantidade maior de roteadores, ou seja, vão demorar mais para chegar em seus destinos). Mas essa diferença é da ordem de milissegundos, o que significa que para a maioria dos sites será insignificante. Outros fatores como banda, processamento ou memória poderão fazer a real diferença no desempenho do seu site.</em></p>
<p><br/><br/></p>
<p>Também queria aproveitar este post para deixar uma sugestão minha para empresas que entram na Internet:</p>
<p><strong>Se sua empresa está na Internet, com blog, twitter e canais de comunicação, a pior coisa que existe é censurar usuários. Nós ficamos revoltados com isso e perdemos o respeito e consideração por seus serviços.</strong></p>
<p><br/></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1352&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/08/24/empresa-de-hospedagem-diz-que-se-o-site-esta-no-brasil-ele-esta-melhor-posicionado-no-google/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Explorando o software por trás do Facebook, a maior rede social do mundo</title>
		<link>http://www.bitabit.eng.br/2010/07/28/explorando-o-software-por-tras-do-facebook-a-maior-rede-social-do-mundo/</link>
		<comments>http://www.bitabit.eng.br/2010/07/28/explorando-o-software-por-tras-do-facebook-a-maior-rede-social-do-mundo/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 19:12:39 +0000</pubDate>
		<dc:creator>Rafael Barbolo Lopes, Coop10</dc:creator>
				<category><![CDATA[Busca]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Cooperativo]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bigpipe]]></category>
		<category><![CDATA[busca]]></category>
		<category><![CDATA[caches]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[escalabilidade]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[haystack]]></category>
		<category><![CDATA[hive]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MapReduce]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[scribe]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[thrift]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[varnish]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1263</guid>
		<description><![CDATA[Na escala em que o Facebook opera, muitas abordagens tradicionais para servir conteúdo web falham ou não são práticas. O desafio para os engenheiros do Facebook tem sido manter o site no ar com mais de meio bilhão de usuários ativos. Este artigo analisa técnicas e softwares que o Facebook usa para funcionar nesse nível. [...]]]></description>
			<content:encoded><![CDATA[<p>Na escala em que o <a href="http://www.facebook.com">Facebook</a> opera, muitas abordagens tradicionais para servir conteúdo web falham ou não são práticas. O desafio para os engenheiros do Facebook tem sido manter o site no ar com mais de <a href="http://blog.facebook.com/blog.php?post=409753352130" target="_blank"><strong>meio bilhão de usuários ativos</strong></a>.</p>
<p>Este artigo analisa técnicas e softwares que o Facebook usa para funcionar nesse nível.</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/facebook_logo_bit_a_bit.jpg"><img class="alignright size-full  wp-image-1264" title="Logo do Facebook (Bit a Bit)" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/facebook_logo_bit_a_bit.jpg" alt="" width="205" height="68" /></a></p>
<p><br/></p>
<h2>Facebook: desafio de escalabilidade</h2>
<p>Antes de entrar em detalhes, aqui estão alguns <a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&#038;palavra=fact%F3ide&#038;CP=73594&#038;typeToSearchRadio=exactly&#038;pagRadio=50">factóides</a> para dar uma idéia do desafio de escalabilidade com o qual o Facebook tem que lidar:</p>
<ul>
<li>
<p>O Facebook serve mais de <a href="https://www.google.com/adplanner/planning/site_profile#siteDetails?identifier=www.facebook.com&amp;lp=true" target="_blank"><strong>550 bilhões de visualizações de páginas por mês</strong></a>;</p>
</li>
<li>
<p>Há mais fotos no Facebook do que em todos os outros sites de fotos juntos (<a href="http://www.watblog.com/2010/07/12/facebook-photos-leave-flickr-picasa-way-behind/" target="_blank">incluindo sites como o Flickr</a>);</p>
</li>
<li>
<p>Mais de <strong><a href="http://blog.facebook.com/blog.php?post=2406207130" target="_blank">3 bilhões de fotos</a></strong> são visualizadas por dia;</p>
</li>
<li>
<p>Mais de <a href="http://www.facebook.com/press/info.php?statistics" target="_blank"><strong>25 bilhões de tipos de conteúdo</strong></a> (atualizações de status, comentários, etc) são compartilhados todo mês;</p>
</li>
<li>
<p>O Facebook tem mais de <a href="http://www.datacenterknowledge.com/archives/2010/06/28/facebook-server-count-60000-or-more/" target="_blank"><strong>60 mil servidores</strong></a>.</p>
</li>
</ul>
<p><br/></p>
<h2>Softwares para escalar</h2>
<p>A infraestrutura de software que o Facebook usa pode ser vista como a de um site <a href="http://pt.wikipedia.org/wiki/LAMP" target="_blank">LAMP</a>, mas com melhorias e extensões de vários serviços. Por exemplo:</p>
<ul>
<li>
<p>O Facebook usa PHP, mas tem um compilador que permite que o sistema execute código nativo nos servidores web, aumentando significativamente seu desempenho;</p>
</li>
<li>
<p>O Facebook usa Linux, mas é um Linux otimizado para garantir alta vazão de rede;</p>
</li>
<li>
<p>O Facebook usa MySQL, mas principalmente para persistência de chaves-valores (<a href="http://pt.wikipedia.org/wiki/Hash" target="_blank">Hashes</a>), movendo lógicas de consultas e JOINS para a camada de aplicação dos servidores web em que otimizações são mais fáceis de implementar, usando por exemplo caches em memória;</p>
</li>
<li>
<p>Por fim, há sistemas customizados, como o <a href="http://www.facebook.com/note.php?note_id=76191543919" target="_blank">Haystack</a>, um objeto de armazenamento altamente escalável usado para servir a imensa quantidade de fotos do Facebook, e o <a href="http://github.com/facebook/scribe" target="_blank">Scribe</a>, um sistema de logging (registro de ações) que consegue operar na escala do Facebook (nada trivial).</p>
</li>
</ul>
<p>Vamos ao que interessa. Abaixo são apresentados os softwares (alguns) que o Facebook usa para fornecer a todos nós a maior rede social do mundo.</p>
<h3>Memcached<a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/memcached.png"><img class="alignright size-full wp-image-1302" title="Logo do Memcached" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/memcached.png" alt="" width="91" height="85" /></a></h3>
<p>O <a href="http://memcached.org/" target="_blank">Memcached</a> é no momento um dos softwares mais famosos na Internet. É um sistema de cache em memória distribuído que o Facebook (e vários outros sites) usam como uma camada de cache entre aplicação web e banco de dados (já que acesso a disco rígido é relativamente lento). Ao longo dos anos, o Facebook realizou diversas otimizações no Memcached e nos softwares que rodam em conjunto com ele.</p>
<p>O Facebook roda milhares de servidores Memcached com <a href="http://felipenasc.blogspot.com/2010/03/escalabilidade-de-aplicacoes-web-futuro.html" target="_blank">dezenas de tearabytes de dados em cache</a> a todo momento. É provavelmente a maior instalação de Memcached do mundo.</p>
<h3>HipHop for PHP<a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/hiphop.png"><img class="alignright size-full wp-image-1304" title="HipHop for PHP Logo" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/hiphop.png" alt="" width="86" height="113" /></a></h3>
<p>PHP é uma linguagem interpretada e por isso seu código quando executado é relativamente lento quando comparado com código que executa nativamente. O <a href="http://github.com/facebook/hiphop-php" target="_blank">HipHop</a> converte PHP em código C++ que pode ser então compilado e apresentar um desempenho melhor. Isso permite que o Facebook aproveite muito melhor seus servidores web já que dependem demais de PHP para servir conteúdo.</p>
<p>Uma pequena equipe de engenheiros no Facebook (inicialmente, apenas três) passou 18 meses <a href="http://developers.facebook.com/blog/post/358" target="_blank">desenvolvendo o HipHop</a>, que agora é usado em produção.</p>
<h3>Haystack</h3>
<p><a href="http://www.facebook.com/note.php?note_id=76191543919" target="_blank">Haystack</a> é o sistema de armazenamento e recuperação de fotos de alto desempenho do Facebook (a rigor, o Haystack é um armazenador de objetos, então ele não armazena apenas fotos). Existem mais de 20 bilhões de fotos no Facebook e cada uma é armazenada em quatro diferentes resoluções, resultando em mais 80 bilhões de fotos.</p>
<p>O desafio do Haystack não é apenas  armazenar bilhões de fotos, mas também executar tarefas com elas em que o desempenho é crítico, como por exemplo remoção, atualização ou acesso.</p>
<h3>BigPipe</h3>
<p>O <a href="http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919" target="_blank">BigPipe</a> é um sistema dinâmico para servir páginas web que o Facebook desenvolveu. Ele é capaz de dividir uma página em seções (chamadas &#8220;<em>pagelets</em>&#8220;) e servi-las em paralelo com desempenho ideal.</p>
<p>Por exemplo, a janela de chat é carregada separadamente, o feed de notícias é carregado separadamente, e assim por diante. Esses &#8220;<em>pagelets</em>&#8221; podem ser carregados em paralelo, que é de onde vem o ganho de desempenho, e os usuários recebem um site que funciona mesmo se uma parte dele for desativada ou estiver com defeitos.</p>
<h3>Cassandra<a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/cassandra.png"><img class="alignright size-full wp-image-1305" title="Logo do Cassandra NoSQL" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/cassandra.png" alt="" width="200" height="43" /></a></h3>
<p><a href="http://cassandra.apache.org/" target="_blank">Cassandra</a> é um sistema de armazenamento distribuído baseado no projeto do <a href="http://labs.google.com/papers/bigtable.html" target="_blank">BigTable</a>. Ele é um dos filhos de destaque do movimento <a href="http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-i/" target="_blank">NoSQL</a> e se tornou open source (virou um projeto Apache). O Facebook o usa na  pesquisa Inbox.</p>
<p>Além do Facebook, uma série de outros sites também o usam, como o Twitter e o Digg. É um sistema capaz de armazenar uma quantidade imensa de dados sem comprometer o tempo de busca e acesso a eles.</p>
<h3>Scribe</h3>
<p><a href="http://github.com/facebook/scribe" target="_blank">Scribe</a> é um sistema de logging flexível e escalável que o Facebook usa para uma infinidade de propósitos internos. Ele foi criado para ser capaz de registrar todas as ações ocorridas no Facebook, e automaticamente lida com novas categorias de ações registradas conforme aparecem (o Facebook tem centenas).</p>
<h3>Hadoop e Hive<a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/hadoop.png"><img class="alignright size-full wp-image-1306" title="Logo do Hadoop" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/hadoop.png" alt="" width="200" height="48" /></a></h3>
<p>O <a href="http://hadoop.apache.org/" target="_blank">Hadoop</a> é uma implementação open source de <a href="http://labs.google.com/papers/mapreduce.html" target="_blank">MapReduce</a> que permite a execução de cálculos em uma quantidade massiva de dados. O Facebook o usa para análise de dados de sua rede. O <a href="http://hadoop.apache.org/hive/" target="_blank">Hive</a> é uma interface de acesso ao Hadoop através de consultas SQL, facilitando seu uso, e teve origem dentro do Facebook.</p>
<p>Tanto o Hadoop quanto o Hive são open source (projetos Apache) e são usados por uma série de grandes sites, como o Yahoo e o Twitter.</p>
<h3>Thrift</h3>
<p>O Facebook usa diferentes linguagens para os seus diferentes serviços. PHP é usada para front-end, Erlang é usada para Chat, Java e C++ são usados em diversas áreas. <a href="http://incubator.apache.org/thrift/" target="_blank">Thrift</a> é um framework cross-language desenvolvido internamente que junta todas as diferentes linguagens, permitindo que elas conversem entre si. Isso facilita enormemente o desenvolvimento cross-language no Facebook.</p>
<p>O Facebook tornou o Thrift open source e adicionou suporte a mais linguagens de programação.</p>
<h3>Varnish<a href="http://www.bitabit.eng.br/wp-content/uploads/2010/07/varnish.png"><img class="alignright size-full wp-image-1309" title="Logo do Varnish" src="http://www.bitabit.eng.br/wp-content/uploads/2010/07/varnish.png" alt="" width="200" height="54" /></a></h3>
<p>O <a href="http://varnish-cache.org/" target="_blank">Varnish</a> é um acelerador HTTP, que pode agir como um balanceador de carga e também realiza cache de conteúdo para servi-lo rapidamente.</p>
<p>O Facebook usa o Varnish para servir fotos, lidando com bilhões de requisições todos os dias. Como quase tudo que o Facebook usa, o Varnish também é open source.</p>
<p><br/></p>
<h2>Outras coisas que ajudam o Facebook a funcionar bem</h2>
<p>Foram mencionados os softwares que constituem o Facebook e o ajudam a escalar. Mas operar um sistema tão grande é uma tarefa complexa, por isso serão listadas outras coisas que ajudam o Facebook a funcionar sem problemas:</p>
<h3>Lançamento gradual de novas funcionalidades e execuções no escuro</h3>
<p>O Facebook tem um sistema chamado de &#8220;<em>Gatekeeper</em>&#8221; (porteiro) que permite que eles rodem diferentes versões do sistema para diferentes conjuntos de usuários. Ele permite que o Facebook lance novas funcionalidades gradualmente e que testes A/B sejam realizados com usuários.</p>
<p>O &#8220;<em>Gatekeeper</em>&#8221; também é responsável por realizar o que é chamado de &#8220;<em>dark launches</em>&#8221; (lançamentos no escuro), que é a ativação de elementos de uma nova funcionalidade antes de ela ir pro ar. É uma maneira de realizar testes de carga do sistema antes de uma funcionalidade ser oficialmente lançada. Normalmente os &#8220;<em>dark launches</em>&#8221; são realizados duas semanas antes do lançamento oficial da funcionalidade.</p>
<h3>Monitoramento do sistema em produção</h3>
<p>O Facebook cuidadosamente monitora seu sistema e o desempenho de cada função PHP executada em ambiente de produção. Com isso é possível projetar um perfil do sistema que está no ar com a ajuda de uma ferramenta chamada <a href="http://pecl.php.net/package/xhprof" target="_blank">XHProf</a> e identificar gargá-los ou áreas que estão operando incorretamente.</p>
<h3>Desativação gradual de recursos para aumento de desempenho</h3>
<p>Se o Facebook tiver algum problema de desempenho, existe um grande número de recursos não-críticos que podem ser desativados para aumentar o desempenho de funcionalidades vitais da rede social. Desta forma, em uma situação de emergência, o núcleo da rede social poderá continuar funcionando normalmente.</p>
<h3>Coisas que não foram mencionadas</h3>
<p>O hardware usado pelo Facebook não entrou em discussão neste artigo, mas é um aspecto importante de analisar quando se pensa em escalabilidade. Por exemplo, o Facebook usa a rede CDN para servir conteúdo estático e possui enormes <em>data centers</em> que hospedam milhares de servidores.</p>
<p>E além do que foi mencionado, existem diversos outros softwares envolvidos na operação do Facebook. Neste artigo foram destacadas as escolhas mais interessantes que o Facebook fez.</p>
<p><br/></p>
<h2>Facebook e projetos open source</h2>
<p>Antes de encerrar o artigo, é importante mencionar o quanto o Facebook, assim como outras grandes empresas de Internet, apoia projetos open source. O Facebook não apenas usa e contribui com software open source como Linux, Memcached, MySQL e Hadoop, como também desenvolve internamente diversas ferramentas que são disponibilizadas como projetos open source.</p>
<p>Uma lista com todos os projetos  open source em que o Facebook atua pode ser encontrada na página <a href="http://facebook.com/opensource" target="_blank"><em>Open Source &#8211; Desenvolvedores do Facebook</em></a>.</p>
<p><br/></p>
<h2>Mais desafios de escalabilidade por vir</h2>
<p>O Facebook cresce a passos incríveis. Sua base de usuários aumenta quase que exponencialmente e já superou <strong>500 milhões de usuários</strong>. Ele tem mantido uma taxa de cerca de <strong>100 milhões de novos usuários a cada 6 meses</strong>.</p>
<p>O rápido crescimento significa que o Facebook vai ter problemas e diversos desafios de desempenho para apresentar cada vez mais páginas, buscas, imagens, mensagens e todos os outros recursos com os quais os usuários interagem. Para um site como o Facebook, este sempre será um fato com o qual ele terá que viver, e seus engenheiros estarão sempre atentos e criando novas maneiras de fazer o sistema escalar.</p>
<p>Vamos acompanhar o que os engenheiros do Facebook estão desenvolvendo! Com certeza surgirão coisas interessantes, afinal de contas, eles estão escalando uma montanha que muitos de nós podemos apenas sonhar; um site com mais pessoas do que a maioria dos países. Quando isso acontece, é preciso ser criativo.</p>
<p><br/><br />
Este artigo é uma adaptação/atualização para o português do artigo em inglês <a href="http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/" target="_blank"><em>Exploring the software behind Facebook, the world&#8217;s largest site</em></a>.<br />
<br/></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1263&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/07/28/explorando-o-software-por-tras-do-facebook-a-maior-rede-social-do-mundo/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Captura de páginas com Nokogiri</title>
		<link>http://www.bitabit.eng.br/2010/06/29/captura-de-paginas-com-nokogiri/</link>
		<comments>http://www.bitabit.eng.br/2010/06/29/captura-de-paginas-com-nokogiri/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 03:00:51 +0000</pubDate>
		<dc:creator>Rafael Barbolo Lopes, Coop10</dc:creator>
				<category><![CDATA[Busca]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Cooperativo]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[biblioteca]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[libxml2]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[nokogiri]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rubygems]]></category>
		<category><![CDATA[screen scraping]]></category>
		<category><![CDATA[sistemas operacionais]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1217</guid>
		<description><![CDATA[Neste artigo, vou explicar de forma prática como utilizar a biblioteca Nokogiri com a linguagem de programação Ruby para extrair informações de páginas na Internet. O exemplo que vai guiar este artigo é a criação de um aplicativo que extrai o preço de um produto qualquer do site da Fast Shop. Ele será usado para [...]]]></description>
			<content:encoded><![CDATA[<p>Neste artigo, vou explicar de forma  prática como utilizar a biblioteca <a href="http://nokogiri.org/">Nokogiri</a> com a linguagem de programação <a href="http://www.ruby-lang.org/pt/">Ruby</a> para extrair informações de páginas na Internet.</p>
<p>O exemplo que vai guiar este artigo é a criação de um aplicativo que extrai o preço de um produto qualquer do site da Fast Shop. Ele será usado para encontrarmos o preço do <a href="http://www.fastshop.com.br/MACBOOK-WHITE-COM-INTEL-CORE-2-DUO--2GB--HD-250GB--TELA-133--PLACA-GRAFICA-NVIDIA-GEFORCE-320M-COM-256MB--SISTEMA-OPERACIONAL-MAC-OS-X-LEOPARD---APPLE---MC516BZA,product,AEMC516BZA,3.aspx">MacBook White</a>.</p>
<p><br/></p>
<h2>1. Instalando Ruby + RubyGems</h2>
<p>Se você usa <strong>Windows</strong>, baixe e instale a última versão estável do interpretador Ruby  <a href="http://www.ruby-lang.org/pt/downloads/">clicando aqui</a>.</p>
<p>Se você usa <strong>Mac OS X</strong>, <strong>Solaris</strong> ou uma distro <strong>linux</strong> popular, seu sistema já vem com Ruby instalado.</p>
<p>RubyGems é um gerenciador de pacotes (programas e bibliotecas) para Ruby. Para instalá-lo, baixe a última versão do aplicativo <a href="http://rubyforge.org/frs/?group_id=126" target="_blank">clicando aqui</a> e execute o comando abaixo no diretório com o arquivo descompactado:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ruby setup.rb
gem update <span style="color: #660033;">--system</span></pre></div></div>

<p><br/></p>
<h2>2. Instalando Nokogiri</h2>
<p><strong>Mac OS X</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> libxml2 libxslt
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> nokogiri</pre></div></div>

<p><strong>Ubuntu/Debian</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># pacotes de desenvolvimento ruby</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libreadline-ruby1.8 libruby1.8 libopenssl-ruby
&nbsp;
<span style="color: #666666; font-style: italic;"># requisitos do nokogiri</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libxslt-dev libxml2-dev
<span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> nokogiri
&nbsp;
<span style="color: #666666; font-style: italic;"># requisitos do nokogiri para Hardy (8.04) ou uma versão mais atual</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libxslt1-dev libxml2-dev</pre></div></div>

<p><strong>Windows</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem <span style="color: #c20cb9; font-weight: bold;">install</span> nokogiri</pre></div></div>

<p><br/></p>
<h2>3. Baixando a página do produto</h2>
<p>O trecho de código que baixa a página do <a href="http://www.fastshop.com.br/MACBOOK-WHITE-COM-INTEL-CORE-2-DUO--2GB--HD-250GB--TELA-133--PLACA-GRAFICA-NVIDIA-GEFORCE-320M-COM-256MB--SISTEMA-OPERACIONAL-MAC-OS-X-LEOPARD---APPLE---MC516BZA,product,AEMC516BZA,3.aspx">MacBook</a> se encontra abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># url do produto</span>
url = <span style="color:#996600;">'http://www.fastshop.com.br/MACBOOK-WHITE-COM-INTEL-CORE-2-DUO--2GB--HD-250GB--TELA-133--PLACA-GRAFICA-NVIDIA-GEFORCE-320M-COM-256MB--SISTEMA-OPERACIONAL-MAC-OS-X-LEOPARD---APPLE---MC516BZA,product,AEMC516BZA,3.aspx'</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># html da página</span>
html = <span style="color:#6666ff; font-weight:bold;">Net::HTTP</span>.<span style="color:#9900CC;">get</span> <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>url<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># html analisado pelo nokogiri</span>
doc = <span style="color:#6666ff; font-weight:bold;">Nokogiri::HTML</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span></pre></td></tr></table></div>

<p><br/></p>
<h2>4. Extraindo o preço do produto</h2>
<p>Para extrair o preço do produto a partir do HTML baixado, vamos utilizar o plugin <a href="https://addons.mozilla.org/pt-BR/firefox/addon/1843/">Firebug</a> para analisar a estrutura do HTML. Ele permitirá que encontremos o <a href="http://www.w3.org/TR/xpath/">XPath</a> (XML Path Language) do elemento que contém o preço do produto.</p>
<p>Na captura de tela abaixo, podemos ver como isso é feito:</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2010/06/fastshop-firebug.png"><img class="size-large wp-image-1245" title="Análise de produto na FastShop com Firebug" src="http://www.bitabit.eng.br/wp-content/uploads/2010/06/fastshop-firebug.png" alt="" width="768" height="480" /></a></p>
<p>Verificamos que a seguinte estrutura de nós de HTML guarda o preço do produto:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>div <span style="color: #007800;">id</span>=<span style="color: #ff0000;">&quot;boxInfosPagamento&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
   <span style="color: #000000; font-weight: bold;">&lt;</span>p <span style="color: #007800;">class</span>=<span style="color: #ff0000;">&quot;preco&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>span<span style="color: #000000; font-weight: bold;">&gt;</span>PRECO DO PRODUTO<span style="color: #000000; font-weight: bold;">&lt;/</span>span<span style="color: #000000; font-weight: bold;">&gt;</span>
   <span style="color: #000000; font-weight: bold;">&lt;/</span>p<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>div<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Podemos traduzir essa estrutura para o seguinte XPath:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#996600;">&quot;//div[@id='boxInfosPagamento']/p[@class='preco']/span&quot;</span></pre></div></div>

<p><br/></p>
<h2>5. Aplicativo final</h2>
<p>O aplicativo final que imprime o preço do produto pode ser visto abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># importando bibliotecas necessárias:</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;rubygems&quot;</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;nokogiri&quot;</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;net/http&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># url do produto</span>
url = <span style="color:#996600;">'http://www.fastshop.com.br/MACBOOK-WHITE-COM-INTEL-CORE-2-DUO--2GB--HD-250GB--TELA-133--PLACA-GRAFICA-NVIDIA-GEFORCE-320M-COM-256MB--SISTEMA-OPERACIONAL-MAC-OS-X-LEOPARD---APPLE---MC516BZA,product,AEMC516BZA,3.aspx'</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># html da página</span>
html = <span style="color:#6666ff; font-weight:bold;">Net::HTTP</span>.<span style="color:#9900CC;">get</span> <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>url<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># html analisado pelo nokogiri</span>
doc = <span style="color:#6666ff; font-weight:bold;">Nokogiri::HTML</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span>
doc.<span style="color:#9900CC;">encoding</span> = <span style="color:#996600;">'utf-8'</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># preço do produto</span>
<span style="color:#CC0066; font-weight:bold;">puts</span> doc.<span style="color:#9900CC;">xpath</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;//div[@id='boxInfosPagamento']/p[@class='preco']/span&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">inner_html</span></pre></td></tr></table></div>

<p>A captura de tela abaixo mostra a execução do aplicativo:</p>
<p><a href="http://www.bitabit.eng.br/wp-content/uploads/2010/06/execucao-fastshop.png"><img class="aligncenter size-full wp-image-1246" title="Execução do aplicativo que extrai preço da FastShop" src="http://www.bitabit.eng.br/wp-content/uploads/2010/06/execucao-fastshop.png" alt="" width="745" height="559" /></a></p>
<p><br/></p>
<h2>6. Conclusões</h2>
<p>Nokogiri é uma biblioteca muito robusta que suporta seleção de elementos com XPath ou seletor CSS3 de forma simples e eficiente. Sempre que precisar analisar XML ou HTML, considere usá-la em seu projeto.</p>
<p>Em artigos futuros vou falar mais sobre extração e análise de informações da Internet. Se tiver alguma dúvida ou sugestão de tema, deixe seu comentário!<br />
<br/><br/><br/></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1217&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/06/29/captura-de-paginas-com-nokogiri/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CloudApp: uploader + encurtador de url para Mac</title>
		<link>http://www.bitabit.eng.br/2010/04/15/cloudapp-uploader-encurtador-de-url-para-mac/</link>
		<comments>http://www.bitabit.eng.br/2010/04/15/cloudapp-uploader-encurtador-de-url-para-mac/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 10:27:50 +0000</pubDate>
		<dc:creator>Eduardo Russo, Coop10</dc:creator>
				<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[barra de menus]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloudapp]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[encurtador de url]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[produtividade]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[uploader]]></category>
		<category><![CDATA[url shortner]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1190</guid>
		<description><![CDATA[A moda dos encurtadores de URL vieram para ficar, porém, conheci o CloudApp como um uploader rápido, que fica na sua cara o tempo todo e, com o uso, descobri que ele também é um encurtador de URL. Lançado no começo do mês, o aplicativo facilita muito subir arquivos para compartilhar com quem você quiser, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1194" title="cloudapp-icone" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-icone.png" alt="cloudapp-icone" width="128" height="128" />A moda dos encurtadores de URL vieram para ficar, porém, conheci o <a href="http://www.getcloudapp.com/" target="_blank">CloudApp</a> como um <em>uploader</em> rápido, que fica na sua cara o tempo todo e, com o uso, descobri que ele também é um encurtador de URL.</p>
<p>Lançado no <a href="http://www.getcloudapp.com/blog/" target="_blank">começo do mês</a>, o aplicativo facilita muito subir arquivos para compartilhar com quem você quiser, seja usando o <a href="http://twitter.com/russoedu" target="_blank">Twitter</a>, seja enviando um e-mail com o link.</p>
<p style="text-align: center;">
<div id="attachment_1192" class="wp-caption aligncenter" style="width: 336px"><img class="size-full wp-image-1192" title="cloudapp-barra-de-menus" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-barra-de-menus.png" alt="CloudApp instalado na barra de menus" width="326" height="286" /><p class="wp-caption-text">CloudApp instalado na barra de menus</p></div>
<p>Depois de se cadastrar no site – grátis, com a única limitação de arquivos não serem maiores que 50 MB – e instalar o programa, que fica alojado na <a href="http://support.apple.com/kb/HT2473?viewlocale=pt_BR" target="_blank">barra de menus</a>, basta arrastar &#8220;qualquer coisa&#8221; para cima dele ou usar a tecla de atalho (você pode definir a que quiser – eu estou usando <strong>CMD+SHIFT+2</strong>, já que isso se parece com os atalhos para tirar fotos da tela – para &#8220;qualquer coisa&#8221; ser enviada para os servidores deles.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="608" height="501" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="src" value="http://www.youtube.com/v/IfDyoeDYs2k" /><embed type="application/x-shockwave-flash" width="608" height="501" src="http://www.youtube.com/v/IfDyoeDYs2k" quality="high"></embed></object></p>
<p>Assim que o arquivo termina de subir, o endereço do tipo &#8220;http://cl.ly/xxx&#8221; é colocado no seu <em>clipboard</em>, bastando um <strong>CMD+V</strong> para colar o endereço. Além disso, ele te avisa, com som ou usando o <a href="http://growl.info/" target="_blank">Growl</a> que o <em>upload</em> terminou.</p>
<div id="attachment_1193" class="wp-caption aligncenter" style="width: 338px"><img class="size-full wp-image-1193" title="cloudapp-com-growl" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-com-growl.png" alt="Growl avisando que o arquivo foi enviado" width="328" height="104" /><p class="wp-caption-text">Growl avisando que o arquivo foi enviado</p></div>
<p style="text-align: left;">O programa ainda conta com <a href="http://www.getcloudapp.com/app/download" target="_blank">Raindrops</a>, <em>plugins</em> que permitem que o atalho de envio de arquivo funcione com diversos programas. Basta baixar, clicar duas vezes e sair usando!</p>
<div id="attachment_1196" class="wp-caption aligncenter" style="width: 343px"><img class="size-full wp-image-1196 " title="cloudapp-raindrops-instalados" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-raindrops-instalados.png" alt="Raindrops instalados" width="333" height="288" /><p class="wp-caption-text">Raindrops instalados</p></div>
<p>Para completar o pacote, como todo bom encurtador de URL, o <a href="http://www.getcloudapp.com/" target="_blank">CloudApp</a> te mostra quantas vezes cada link foi clicado, tanto pelo aplicativo na barra de menus, quanto pelo site.</p>
<p style="text-align: center;">
<div id="attachment_1197" class="wp-caption aligncenter" style="width: 536px"><img class="size-full wp-image-1197 " title="cloudapp-site-com-estatisticas-de-downloads" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-site-com-estatisticas-de-downloads.png" alt="Estatísticas de download" width="526" height="385" /><p class="wp-caption-text">Estatísticas de downloads no site</p></div>
<p style="text-align: left;">Quando se clica num link de arquivo que não pode ser aberto nativamente pelo browser (PDFs, DOCs, ZIPs e coisas do tipo), você é levado para uma tela com opção de download, já, quando é uma imagem ou uma URL, o programa abre o link diretamente no lugar.</p>
<div id="attachment_1195" class="wp-caption aligncenter" style="width: 294px"><img class="size-full wp-image-1195 " title="cloudapp-opacao-de-download" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/cloudapp-opacao-de-download.png" alt="Download de arquivo &quot;não nativo&quot; do browser " width="284" height="97" /><p class="wp-caption-text">Download de arquivo &quot;não nativo&quot; do browser </p></div>
<p>Resumindo… se você tem um Mac, baixe o <a href="http://www.getcloudapp.com/" target="_blank">CloudApp</a> agora, que é, até o momento, totalmente grátis.</p>
<p>Fonte: <a href="http://macmagazine.com.br/2010/04/08/cloudapp-armazene-arquivos-do-mac-na-nuvem-via-drag-drop/" target="_blank">MacMagazine</a> e <a href="http://lifehacker.com/5508611/cloudapp-instantly-shares-any-file-is-my-new-favorite-timesaver" target="_blank">Lifehacker</a></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1190&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/04/15/cloudapp-uploader-encurtador-de-url-para-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finalmente, &#8220;pastas&#8221; no Gmail</title>
		<link>http://www.bitabit.eng.br/2010/04/09/finalmente-pastas-no-gmail/</link>
		<comments>http://www.bitabit.eng.br/2010/04/09/finalmente-pastas-no-gmail/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 10:44:36 +0000</pubDate>
		<dc:creator>Eduardo Russo, Coop10</dc:creator>
				<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[nested labels]]></category>
		<category><![CDATA[pastas]]></category>
		<category><![CDATA[tags]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1180</guid>
		<description><![CDATA[Não que eu seja contra conceito de tags (que me desculpem os puristas, mas não vou chamar tags de &#8220;etiquetas&#8221;), muito pelo contrário. Muitas coisas não se enquadram em apenas uma &#8220;pasta&#8221;, mas sim a várias, por isso, o conceito de tags é muito mais inteligente. Porém, em termos de organização, agrupar assuntos similares é [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1185" title="icone gmail labs" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/icone-gmail-labs.png" alt="icone gmail labs" width="75" height="128" /></p>
<p>Não que eu seja contra conceito de <em>tags</em> (que me desculpem os puristas, mas não vou chamar <em>tags</em> de &#8220;etiquetas&#8221;), muito pelo contrário. Muitas coisas não se enquadram em apenas uma &#8220;pasta&#8221;, mas sim a várias, por isso, o conceito de <em>tags</em> é muito mais inteligente.</p>
<p>Porém, em termos de organização, agrupar assuntos similares é essencial e por isso o agrupamento de <em>tags</em> no formato de pastas sempre foi tão esperado por mim.</p>
<p>Já usava isso com o <a href="https://addons.mozilla.org/pt-BR/firefox/addon/6076" target="_blank">Better Gmail</a>, mas, além de ser mais um plugin deixando meu <a href="http://www.mozilla.com/pt-BR/firefox/" target="_blank">Firefox</a> na velocidade de uma tartaruga, não é em todo lugar que vc pode instalá-lo.</p>
<p>Foi com extrema felicidade que li hoje que a função foi finalmente implementada no <a href="http://gmailblog.blogspot.com/2008/06/introducing-gmail-labs.html" target="_blank">Labs</a>. Basta clicar no <a href="http://pt.wikipedia.org/wiki/Erlenmeyer_(balão)" target="_blank">Erlenmeyer</a> verde e ativar a nova função!</p>
<div id="attachment_1183" class="wp-caption aligncenter" style="width: 656px"><img class="size-full wp-image-1183" title="gmail labs nested labels ativacao" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/gmail-labs-nested-labels-ativacao.png" alt="Entre no Labs e faça uma busca por &quot;Nested&quot; para chegar direto!" width="646" height="98" /><p class="wp-caption-text">Entre no Labs e faça uma busca por &quot;Nested&quot; para chegar direto!</p></div>
<p>Depois de ativada, basta aninhar as <em>tags</em> usando uma &#8220;/&#8221;.</p>
<div id="attachment_1181" class="wp-caption aligncenter" style="width: 174px"><img class="size-full wp-image-1181" title="gmail labs nested labels" src="http://www.bitabit.eng.br/wp-content/uploads/2010/04/gmail-labs-nested-labels.png" alt="Nesse exmplo, fiz 3º Módulo Acadêmico/automação…" width="164" height="139" /><p class="wp-caption-text">Nesse exmplo, fiz 3º Módulo Acadêmico/automação…</p></div>
<p>Infelizmente, a coisa não funciona tão bem quanto poderia. Se você alterar o nome de uma &#8220;raiz&#8221;, terá que alterar todos seus filhos na mão. Então cuidado ao decidir os nomes!</p>
<p>Fonte: <a href="http://www.ovelho.com/content/gmail-adiciona-duas-nova-funcionalidades" target="_blank">O Velho</a></p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1180&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/04/09/finalmente-pastas-no-gmail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notificação de multiplas contas do Gmail</title>
		<link>http://www.bitabit.eng.br/2010/03/31/notificacao-de-multiplas-contas-do-gmail/</link>
		<comments>http://www.bitabit.eng.br/2010/03/31/notificacao-de-multiplas-contas-do-gmail/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 12:32:18 +0000</pubDate>
		<dc:creator>Eduardo Russo, Coop10</dc:creator>
				<category><![CDATA[Avaliações]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[multiplas contas]]></category>
		<category><![CDATA[notificação]]></category>
		<category><![CDATA[notify]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[produtividade]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1147</guid>
		<description><![CDATA[Ontem fiz um post de como sincronizar contatos de múltiplas contas do Gmail. Hoje o assunto são notificações de e-mails de múltiplas contas no Mac OS X. Como disse no post anterior, uso os próprios sites para ler meus e-mails, portanto não tenho a facilidade de quem usa o Mail para saber quando uma nova [...]]]></description>
			<content:encoded><![CDATA[<p>Ontem fiz um post de como <a href="http://www.bitabit.eng.br/2010/03/30/sincronizando-contatos/" target="_blank">sincronizar contatos</a> de múltiplas contas do Gmail. Hoje o assunto são notificações de e-mails de múltiplas contas no Mac OS X.</p>
<p>Como disse no post anterior, uso os próprios sites para ler meus e-mails, portanto não tenho a facilidade de quem usa o Mail para saber quando uma nova mensagem chegou.</p>
<p>Para resolver isso, usava o <a href="http://toolbar.google.com/gmail-helper/notifier_mac.html" target="_blank">Google Notifier for Mac</a>, do próprio Google, mas tem um pequeno detalhe: ele só permite a configuração de uma conta. Pesquisando, achei umas gambiarras para duplicar o programa e configurar cada um com uma conta… muito trabalho.<img class="alignright size-full  wp-image-1148" title="logo notify" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/logo-notify.png" alt="logo notify" width="128" height="128" /></p>
<p>Peguei então o <a href="http://vibealicious.com/apps/notify/" target="_blank">Notify 2</a>. Ele faz praticamente a mesma coisa que o programa &#8220;oficial&#8221;, mas permite que você adicione múltiplas contas.</p>
<p>Dentre as funcionalidades do programa, destaco as seguintes:</p>
<ul>
<li>coloca o número de mensagens não lidas na barra de menu e <em>preview</em> das  mensagens</li>
</ul>
<p style="text-align: center;">
<div id="attachment_1158" class="wp-caption aligncenter" style="width: 394px"><img class="size-full wp-image-1158 " title="notify alerta" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-alerta1.png" alt="Contagem de e-mails não lidos e preview" width="384" height="446" /><p class="wp-caption-text">Contagem de e-mails não lidos e preview</p></div>
<ul>
<li>escolha de quanto em quanto tempo checar as contas. Essa é uma &#8220;desvantagem&#8221; em relação ao oficial que funciona por <em>push</em>.</li>
</ul>
<p style="text-align: center;">
<div id="attachment_1153" class="wp-caption aligncenter" style="width: 298px"><img class="size-full wp-image-1153 " title="notify growl e tempo" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-growl-e-tempo.png" alt="Configuração de tempo de verificação e alertas do Growl" width="288" height="229" /><p class="wp-caption-text">Configuração de tempo de verificação e alertas do Growl</p></div>
<ul>
<li>escolha do som que deve ser tocado quando uma mensagem chega</li>
</ul>
<p style="text-align: center;">
<div id="attachment_1155" class="wp-caption aligncenter" style="width: 298px"><img class="size-full wp-image-1155 " title="notify som" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-som.png" alt="Configuração de sons de alerta" width="288" height="173" /><p class="wp-caption-text">Configuração de sons de alerta</p></div>
<ul>
<li>notificações do <a href="http://growl.info/" target="_blank">Growl</a></li>
</ul>
<div id="attachment_1151" class="wp-caption aligncenter" style="width: 338px"><img class="size-full wp-image-1151" title="notify e growl" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-e-growl.png" alt="Aviso do Growl" width="328" height="89" /><p class="wp-caption-text">Aviso do Growl</p></div>
<ul>
<li>vira seu &#8220;leitor de e-mails padrão&#8221;. Isso significa que, quando você clicar num link com &#8220;mailto&#8221;, o programa entrará em ação e abrirá uma janela para você escrever o e-mail.</li>
</ul>
<p style="text-align: center;">
<div id="attachment_1152" class="wp-caption aligncenter" style="width: 298px"><img class="size-full wp-image-1152 " title="notify email padrao" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-email-padrao.png" alt="Seleção de programa de e-mail padrão" width="288" height="228" /><p class="wp-caption-text">Seleção de programa de e-mail padrão</p></div>
<p style="text-align: left;">
<div id="attachment_1159" class="wp-caption aligncenter" style="width: 418px"><img class="size-full wp-image-1159 " title="notify mailto" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/notify-mailto.png" alt="Janela de composição de novo e-mail" width="408" height="384" /><p class="wp-caption-text">Janela de composição de novo e-mail</p></div>
<p>O programa é grátis, mas tem também uma versão paga (US$ 10,00), mas não senti necessidade dela, a grátis faz exatamente o que eu precisava!</p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1147&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/03/31/notificacao-de-multiplas-contas-do-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronizando contatos</title>
		<link>http://www.bitabit.eng.br/2010/03/30/sincronizando-contatos/</link>
		<comments>http://www.bitabit.eng.br/2010/03/30/sincronizando-contatos/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 22:18:48 +0000</pubDate>
		<dc:creator>Eduardo Russo, Coop10</dc:creator>
				<category><![CDATA[Avaliações]]></category>
		<category><![CDATA[Coop10]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[contatos]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[produtividade]]></category>
		<category><![CDATA[sincronização]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[soocial]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.bitabit.eng.br/?p=1130</guid>
		<description><![CDATA[Desde que a empresa onde trabalho adotou o Google como fornecedor de e-mails, tenho o desejo de sincronizar os contatos da minha conta pessoal com da conta da empresa. Uma solução seria adicionar uma conta na outra usando pop, mas isso misturaria os e-mails e não estava afim disso. Uma solução que tentei e até [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que a empresa onde trabalho adotou o Google como fornecedor de e-mails, tenho o desejo de sincronizar os contatos da minha conta pessoal com da conta da empresa.</p>
<p>Uma solução seria adicionar uma conta na outra usando pop, mas isso misturaria os e-mails e não estava afim disso.</p>
<p>Uma solução que tentei e até funcionou, mas que é um <a href="http://desciclo.pedia.ws/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Gambiarras" target="_blank">POG</a> total foi a seguinte:</p>
<ul>
<li>Em casa, sincronizava, pelo Address Book do Mac OS X com a conta pessoal e com uma conta do Yahoo, que criei só pra isso.</li>
<li>No Trabalho e no iPhone, sincronizava com a conta do trabalho e do Yahoo.</li>
</ul>
<p>Até que funcionava, mas não tão bem quanto eu gostaria.</p>
<p><img class="size-full wp-image-1138 alignright" title="logo soocial" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/logo-soocial.png" alt="logo soocial" width="128" height="128" />Recebi sugestões de criar um <em>script</em> que baixasse o <a href="http://pt.wikipedia.org/wiki/Comma-separated_values" target="_blank">CSV</a> de uma conta e subisse para a outra de tanto em tanto tempo. Além de odiar reinventar a roda, isso não funcionaria nas duas mãos.</p>
<p>Enfim, pesquisando sobre o assunto, achei o <a href="http://www.soocial.com/" target="_blank">Soocial</a>.</p>
<p>O aplicativo mantém sincronismo entre diversas contas de diversos serviços.</p>
<p style="text-align: left;">
<div id="attachment_1140" class="wp-caption aligncenter" style="width: 438px"><img class="size-full wp-image-1140 " title="servicos soocial" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/servicos-soocial.png" alt="Serviços aceitos pelo Soocial até o momento" width="428" height="309" /><p class="wp-caption-text">Serviços aceitos pelo Soocial até o momento</p></div>
<p>No começo a coisa foi meio casca grossa, principalmente porque meus contatos estavam &#8220;semi sincronizados&#8221;. Então, pra não correr riscos, o programa automaticamente faz um backup dos contatos das contas do Gmail!</p>
<p style="text-align: center;">
<div id="attachment_1132" class="wp-caption aligncenter" style="width: 503px"><img class="size-full wp-image-1132  " title="conexoes soocial" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/conexoes-soocial.png" alt="Conexões feitas: Duas contas de Gmail, dois Macs e um iPhone. Tudo sincronizado!" width="493" height="467" /><p class="wp-caption-text">Conexões feitas: Duas contas de Gmail, dois Macs e um iPhone. Tudo sincronizado!</p></div>
<p style="text-align: left;">Para fazer o <em>sync</em> no Mac, basta baixar uma preferência de sistema onde vc coloca sua conta e diz de quanto em quanto tempo ele deve verificar as contas e sincronizar. A sincronia é feita em todas as direções, então basta adicionar um contado em qualquer uma delas!</p>
<p style="text-align: left;">
<div id="attachment_1139" class="wp-caption aligncenter" style="width: 459px"><img class="size-full wp-image-1139 " title="preferencias mac" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/preferencias-mac.png" alt="Preferências do Soocial no Mac OS X" width="449" height="434" /><p class="wp-caption-text">Preferências do Soocial no Mac OS X</p></div>
<p>Não sei como a sincronia é feita no Windows e se alguém testar no Windows e puder contribuir, agradeço!</p>
<p style="text-align: left;">No iPhone, você pode baixar um programa, mas eu preferi deixar isso pro próprio iTunes, já que não tenho necessidade de atualizar as coisas tão rapidamente assim.</p>
<p style="text-align: left;">Além dos meios normais, você pode utilizar o próprio site do Soocial buscar, incluir e alterar contatos e forçar sincronizações.</p>
<p style="text-align: center;">
<div id="attachment_1137" class="wp-caption aligncenter" style="width: 507px"><img class="size-full wp-image-1137  " title="contatos soocial" src="http://www.bitabit.eng.br/wp-content/uploads/2010/03/contatos-soocial.png" alt="Meus contatos no site do Soocial" width="497" height="324" /><p class="wp-caption-text">Meus contatos no site do Soocial</p></div>
<p style="text-align: left;">Só por isso o serviço já valeria ouro, mas ainda tem mais!</p>
<p style="text-align: left;">Você pode fazer &#8220;conexões&#8221; com seus contatos. Isso é, sempre que um contato &#8220;conectado&#8221; alterar seus dados, estes são automaticamente sincronizados com os dados que você tem dele!</p>
<p style="text-align: left;">Como &#8220;vantagem&#8221; pouca é bobagem, o serviço é totalmente grátis!</p>
<p style="text-align: left;">Se você me conhece e passar a usar o serviço, faça uma conexão comigo pra mantermos nossos contatos atualizados <img src='http://www.bitabit.eng.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<img src="http://www.bitabit.eng.br/?ak_action=api_record_view&id=1130&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.bitabit.eng.br/2010/03/30/sincronizando-contatos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

