Facebook precisaria contratar a população inteira do Chile pra ler suas mensagens

Recentemente um post alegando que o Facebook guarda no banco de dados tudo aquilo que você faz (e até o que você não faz) na rede social gerou polêmica e levantou mais uma vez o debate sobre privacidade. Acho válido levantar alguns números que respondem a maioria das questões.

A questão levantada foi que, tudo o que você digita gera valor no site, e isso é verdade.
E se você digita mas não envia algo, esse valor é desperdiçado. Por conta disso, o Facebook tenta entender porque você desistiu.

Antes, é necessário dizer que é possível sim. Mesmo se você não clicar em “Enviar”, o Facebook pode sim salvar o que você digitou e armazenar num banco de dados. O rascunho do gmail faz isso, o autocomplete quando você digita @algumacoisa e o Facebook te sugere uma pessoa ou uma fanpage, também faz, envia sua informação (e devolve uma lista de pessoas e fanpages) antes mesmo de você apertar o botão enviar.

E isso vai girar muitos, muitos registros no banco de dados da rede social.

Assim, numa macro análise verificando milhões (talvez bilhões) de dados, pode-se encontrar estatísticas interessantes pra quem administra o site.
Por exemplo, se no formulário de enviar parabéns aos aniversariantes tem uma desistência de 15% (pessoas que começaram a digitar mas não enviaram nada), eles podem tentar aumentar o botão “enviar”, ou diminuir a área do input pra sugerir um texto menor (mais fácil). Se a taxa de desistência cair pra 4%, por exemplo, melhor pro Facebook.

Outro exemplo, se na Itália as pessoas desistem mais de criar fanpages, talvez algum algum botão em Italiano esteja mal traduzido, e é possível melhorar.

Toda essa análise de dados, é interessante pra eles e é completamente válido, eu faria isso se tivesse uma equipe do tamanho do Facebook, pronta pra analisar todo o tipo de dado possível.

O erro das pessoas, é achar que o Facebook seja um big brother, que analisa individualmente a mensagem que você pensou em mandar pro sua namorada ou ex-namorada mas desistiu.

Imaginem quem tem 1 bilhão de pessoas no Facebook. Quantas pessoas seriam necessárias pra analisar tudo? 10 milhões? Seria necessário contratar a população adulta do Chile, por exemplo pra monitorar tudo o que é feito lá dentro.

Enfim, informações da nossa vida toda está lá. Devemos nos preocupar? Creio que não. Se alguma pessoa tiver acesso a tudo, não são as suas mensagens que essa pessoa irá ler.

Imagens feitas somente com CSS

Recentemente começou a surgir uma coleção de ilustrações feitas somente com CSS. Usando features e técnicas de CSS como :after, :before, translate, matrix, rotate, border-radius, box-shadow, entre outras, programadores front-end com muito tempo e imaginação vão fazendo sopinhas de div’s e span’s, criando ilustrações sem carregar nenhum arquivo de imagem no HTML.

Veja os exemplos mais famosos. Alguns usam até animação em CSS.

Bussola animada
Bussola animada em CSS

Homer Simpson
Homer Simpson em CSS

Brender
Brender do Futurama em CSS

Twitter baleiando
twitter baleiando em css

Ícones do IOS
Ícones do IOS

O efeito é incrível mas por enquanto tem pouca utilidade. Vamos ver aonde a imaginação dos programadores vai chegar.

PushState no HTML – Pra mudar a url do browser sem dar Refresh

Lembro até hoje o dia que ví um site mudando a url do navegador sem dar refresh: “que bruxaria é essa?”. Era um tema de blogspot que o Google tinha desenvolvido.

A função pushState do objeto History do javascript serve pra isso. Altera a url sem recarregar a página, desde que seja no mesmo domínio.

Veja os dois exemplos. Clique e depois olhe a sua barra de endereços:

Exemplo 1: /teste

Exemplo 2: /url-falsa-sem-dar-refresh

A função é simples.

history.pushState(data,titulo,nova_url);

O primeiro parâmetro serve pra passar informações ao objeto history (dá pra passar até 640 kbytes de váriaveis) pra ser acessado depois.
O segundo parâmetro seria o título da página.
O terceiro parâmetro é a url relativa que você vai passar “/teste” foi usado no exemplo. Obviamente, a url tem que ser do mesmo domínio da url original.

Ou seja, o exemplo foi feito assim:

<a href="#" onclick="history.pushState('teste','Titulo de teste','/teste'); return false;">/teste</a></h2>

Mas o que dá pra fazer com isso?

Dá pra fazer Single Page Aplications que tenham, de verdade, links únicos sendo tudo indexado pelos buscadores de maneira correta.

Antigamente, se trabalhava com location.hash ( tipo http://www.site.com#!/quem-somos )

E com isso, chamando a url corretamente é possível controlar a mesma página via server side para deixar uma resposta pra Ajax e outra normal.

if( (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')){
    include('header.php');
}

// conteudo

if( (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')){
    include('footer.php');
}

Essa funcionalidade já está disponível pra Safari, Chrome, Firefox, IE10, etc..
Só no IE9 que não funciona.

De toda forma, recomendo (muito) o uso disso pra aplicações mobile.

O que é CDN e porque todo site deveria usar

CDN é uma abreviação de Content Delivery Network (meio que uma rede de fornecimento de conteúdo em português). Serve basicamente pra distribuir arquivos estáticos (como fotos, arquivos css, javascript, xml, flash, etc) de forma mais rápida e deixar com que o servidor web se preocupe apenas em servir o .html, enquanto a CDN replica os arquivos por uma rede de servidores distribuída pelo mundo todo.

Existem 5 grandes vantagens de se usar CDN.

1 – Carregamento simultâneo de mais arquivos.
Os browsers em média abrem até 4 conexões simultâneas pra cada domínio. Normalmente, as pessoas criam um subdominio pra servir os arquivos estáticos como cdn.dominio.com ou static.dominio.com e com isso, o navegador passa a fazer 8 conexões simultâneas pra carregar os arquivos do servidor.

2 – Ping mais rápido
As CDNs, replicam o conteúdo pelo mundo todo. Mesmo se seu servidor estiver no Brasil, se alguém na Europa ver o seu site, por exemplo, ao invés do usuário acessar os arquivos estáticos aqui no Brasil, vai baixar de um dos servidores da CDN que está mais próximo, lá na Europa mesmo. A Akamai, uma das empresas pioneiras nisso, tem milhares de servidores espalhados no mundo todo.

3 – Arquivos reduzidos dinamicamente
Algumas CDNs como o pagespeed do Google ou o CloudFlare, possuem funções pra minificar arquivos. Ou seja, retirar comentários, quebras de linha e espaços em branco de CSS e Javascript. Também é possível diminuir o tamanho das imagens (quase) sem perder qualidade. O pagespeed é mestre nisso.

4 – Alívio pro seu servidor
Ao invés do seu servidor web ter que ser preocupar em servir uma página por completo (seja ele Apache, IIS, Nginx ou seja lá o que for), agora ele vai ter que se preocupar em servir somente em gerar e servir o html. O número de processos abertos pelo servidor pode cair em mais de 90%.

5 – Custo baixo
O preço de uma CDN hoje é muito barato, Rackspace e Amazon cobram cerca de U$0.15 por gigabyte transferido. Mas existem CDNs gratuitas como o próprio pagespeed do Google ou o CloudFlare.

Posts Anteriores »