Pergunte ao Polvo

Sexta-feira, logo após o jogo da Alemanha contra Uruguai na disputa pelo terceiro lugar, vejo várias pessoas comentando sobre o polvo Paul que acertou o resultado mais uma vez.

Daí surge uma idéia: um simulador do polvo online. Idéia a princípio idiota, só pra cobrir o ócio do sábado a tarde. O que ninguém poderia imaginar é que isso viraria um meme nas próximas 24 horas.

Então comecei. Papel e caneta na mão. De resultado de um rápido brainstorm sozinho, tive a idéia da tela inicial do site. Que por sinal, não é nada criativa.

Rascunho da tela inicial do "pergunte ao polvo"

Rascunho da tela inicial do "pergunte ao polvo"

Com o rascunho em mãos, me veio o nome ‘pergunte ao polvo’ como título do site. Corri no registro.br e, por sorte, este domínio estava disponível para registro.

Registro feito. Em trinta minutos, desenvolvi o código PHP que faz o polvo escolher a resposta baseado nas alternativas informadas. Só falta agora o design (só sei programar).

Entrei em contato com a Bruna Bites, designer da Kingo Labs, mas ela estava ocupada e não conseguiria fazer o design naquele momento. Fui atrás do Fábio Bueno, designer da Fama Design, que prontamente atendeu o pedido e me entregou tudo em poucas horas. Quando o site entrou definitivamente no ar, já estávamos na madrugada de domingo.

Pergunte ao Polvo com design do Fábio Bueno

Pergunte ao Polvo com design do Fábio Bueno

Durante o domingo todo o site foi arrastando-se com poucas perguntas. Por volta das sete horas da noite ainda estávamos com 1200 perguntas no site (sendo várias perguntas feitas para testes). De repente, algo aconteceu para que várias pessoas começassem a entrar no site. Nas próximas horas, o #pergunteaopolvo entraria no trending topic do twitter. Foi o que aconteceu.

Num período de seis horas, 100 mil perguntas foram realizadas ao polvo. O que dá uma média de 4,6 perguntas por segundo.

Aqui vai um balanço de tudo que aconteceu no domingo no “Pergunte ao Polvo” (dados do Google Analytics):

* 59 mil visitantes únicos
* 590 mil pageviews
* 5 minutos foi o tempo médio no site por visita

Mas tudo isso só foi possível porque o Polvo Paul está na mídia e todos estão falando dele. Senão, não teria graça.

Abaixo, um vídeo que achei no Youtube de um usuário do “Pergunte ao Polvo”:

Clipping: Hackers.gov

Governos entregam bancos de dados inteiros pela internet e dão origem a uma nova onda de transparência no setor público

Por André Faust | 11.05.2010 | 16h25

O programador Barreto: um novo sentido para informações coletadas pela prefeitura de São Paulo (Foto: Germano Lüders)

No dia 23 de fevereiro, um gato sem dono invadiu uma propriedade na rua Manuel da Nóbrega, nos Jardins, bairro nobre de São Paulo. Uma semana depois, um fio de luz se desprendeu de um poste e ficou caído na rua Quatinguaba, na zona leste da cidade. No mesmo dia, uma feira livre em Pirituba, na região noroeste, deixou montes de lixo esparramado pelas calçadas do bairro. Entre o fim de fevereiro e o início de março, essas foram algumas das reclamações registradas pelos paulistanos no Sistema de Atendimento ao Cidadão (SAC), um serviço mantido pela prefeitura da cidade. Fatos como esses ocorrem o tempo todo, mas você provavelmente nunca tomaria conhecimento deles não fosse por iniciativa de Bruno Barreto, o programador de 20 anos de idade da foto ao lado.

Criado para ser um canal de comunicação entre a prefeitura e os moradores de São Paulo, o SAC funciona de forma que os reclamantes, e somente eles, têm acesso ao registro e ao encaminhamento de suas solicitações individuais pela internet. Como morador da cidade, porém, Barreto achava que o conjunto desses dados poderia ter mais utilidade se estivesse visível a todos. Lançando mão de técnicas de “raspagem” (jargão que significa extrair na marra dados que estão online, mas escondidos), ele obteve uma cópia de todas as reclamações registradas no sistema – e fez justiça com as próprias teclas. Em setembro de 2009, Barreto colocou no ar o SACSP, um projeto independente que presta um serviço inédito aos moradores de São Paulo. Usando rankings, ferramentas de geolocalização e análises gráficas, o site dá novos usos e interpretações aos milhares de reclamações que são registrados pela prefeitura mas ficam invisíveis no sistema oficial. Graças ao SACSP, é possível saber, por exemplo, que a zona oeste é a região da cidade mais atingida por morcegos. Ou, então, que os semáforos nas proximidades do Anhangabaú, no centro, funcionam frequentemente fora de sincronia. O site chamou a atenção da prefeitura, e hoje o programador dá consultoria para novos projetos de abertura de dados públicos.

Clique aqui para ler a matéria na íntegra no site da Exame (restrito para assinantes).

Motorola Developer Summit 2010

Aconteceu nesta quarta-feira, no Hotel Transamérica, em São Paulo, o Motorola Developer Summit 2010, um evento da Motorola para promover os novos smartphones com o sistema operacional Android da Google.

O credenciamento, marcado para as 9h00 foi tranquilo para quem chegou no horário. Para quem chegou atrasado, teve que enfrentar uma fila de até uma hora.

Após o credenciamento, enquanto era esperada a abertura oficial, todos foram convidados à irem ao “playground” construido para que fosse feito um Android usando massa de modelar que foram expostos em uma mesa. Cada um que  participou e preencheu o formulário com nome, e-mail e endereço de correspondência, receberá uma camiseta do Android.

Com a abertura programada para as 10h45, Sérgio Buniac, vice-presidente de produtos móveis da Motorola Brasil, iniciou o evento com uma introdução rápida ao mundo dos smartphones apresentando dados estatísticos sobre tipos e usos dos aparelhos.

Às 11 horas, John Ellis, diretor de software, assumia o microfone para contar uma breve história da Motorola e compartilhar a visão de futuro da empresa para o mercado dos smartphones. Segundo John, os usuários de aparelhos móveis é maior que o número de usuários de computadores comuns. Diz ainda que há mais usuários de Internet móvel na China do que a população dos EUA.

Ainda durante a abertura, foi apresentada a loja de aplicativos para smartphones da Motorola chamada de Shop4Apps, já disponível na China e prevista para este ano no Brasil, Argentina e México. Ellis diz que o mercado de apps para aparelhos móveis ultrapassará a barreira dos 4 bilhões de downloads e faturamento de R$ 30 bilhões só no ano 2010.

O primeiro grande deslize ocorre quando Ellis resolve comentar sobre interações sociais e troca o nome da cidade de “São Paulo” para “Buenos Aires”. Apesar disso, a Motorola chega com boas notícias informando que, até o fim de 2010, serão lançados mais vinte smartphones com Android.

Logo após a abertura, foram abertas quatro salas onde seriam apresentadas pequenas palestras de até 45 minutos que falaram sobre desenvolvimento de aplicações e negócios com smartphones.

O evento termina as 18h30 com a “Motobalada” no terraço do hotel.

SACSP: Hack cívico na mídia

Em novembro do ano passado desenvolvi o SACSP, um hack que captura informações referentes às reclamações abertas pela população por meio do telefone 156, site da Prefeitura de São Paulo e praça de atendimento das subprefeituras da cidade.

O hack foi desenvolvido primariamente para o Transparência Hack Day que aconteceria simultaneamente com o webbr2009, evento da W3C que tinha como objetivo divulgar os padrões da web para desenvolvedores brasileiros.

Com isso, o hack ganhou proporções que eu não imaginava. A partir da publicação dele, muitas pessoas se interessaram. Abaixo listo algumas matérias feitas por revistas, jornais e programas de TV sobre o aplicativo.

IDGNow!Mashup SACSP mapeia reclamações feitas por paulistanos à Prefeitura

EstadãoA vez da web como plataforma cidadã

Yahoo! NotíciasIdeia vai ser incorporada pela prefeitura

TV EstadãoWeb Cidadania: a Internet a serviço da sociedade (video logo abaixo)

TV CulturaPrograma Login | Perfil Y (video logo abaixo)

EstadãoHackers com vocação republicana

Click Alphaville e microformats

Para quem ainda não sabe, há uma semana coloquei definitivamente no ar o Click Alphaville. Ele é um site que reune os sites, telefones, e-mails e endereços das empresas de Alphaville (Barueri) e região.

O site é bem funcional e interativo. Cada anúncio pode receber tags enviadas pelos usuários, comentários e classificação com até 5 estrelas.

Hoje implantei nele algumas coisas interessantes. A mais legal de todas é a especificação dosi microformats.

Microformats nada mais é do que pequenas marcações para deixar o código ’semântico’. Vários sites na internet já possuem essas marcações para ajudar mecanismos de buscas e desenvolvedores que usam o site como se fosse uma API.

No Click Alphaville, cada página de anúncio possui microformats nas TAGs, nos endereço e na classificação.

Quem utiliza o Firefox, pode usar uma extensão chamada “Operator” que lê estes microformats e disponibiliza-os na barra de ferramentas de forma fácil para interação. É possível pesquisar as tags em outros sites ou exportar o endereço como um cartão de visitas, por exemplo.

Quem quiser conferir, é só acessar o Click Alphaville e abrir qualquer anúncio.

Widget: Twitter no seu site

Eu desenvolvi hoje para meu blog um widget pra exibir o twitter na barra lateral. Como sou legal com todo mundo, vou disponibilizar ele para quem quiser colocar no seu site, blog, myspace ou outro lugar legal.

O widget é só um iframe. Logo, não requer muita inteligência/habilidade para instalação.

Para colocar em algum lugar, é só copiar o código a seguir substituindo “seunick” pelo seu nick no twitter ou algum termo que deseja buscar:

<iframe border="0" src="http://api.brunobarreto.net/twitter/widget.html?q=seunick"></iframe>

Para mudar altura e largura, é só seguir a especificação do iframe:

Exemplo:
<iframe width="430" height="300" style="border:none" src="http://api.brunobarreto.net/twitter/widget.html?q=twitter+widget"></iframe>

Irá gerar:

Update:
O código fonte! Está em php e você pode fazer download e usar como quiser.

Vigilância sanitária em PHP

From XKCD

Do XKCD

Já parou para se perguntar o motivo pelo qual você sempre esquece de limpar os dados que os usuários digitam dentro da aplicação que você está desenvolvendo?

Limpar ou validar esses dados pode previnir e resolver dezenas de problemas. Principalmente, resolverá problemas de segurança.

Em PHP, temos várias funções nativas que ajudam a validar e sanitizar as variáveis. Uma boa função que eu raramente uso (mas vou começar a usar) é a filter_var.

A função filter_var permite uma infinidade de validações que precisamos usar em todos os projetos. Dentre elas: validar e-mail, url, números inteiros, números decimais, remover html, remover caracteres especiais e etc.

A seguir mostro usos práticos de validação:

filter_var($variavel,FILTER_VALIDATE_BOOLEAN)
Retorna TRUE se $variavel for um valor boleano ou FALSE se não for.

filter_var($variavel,FILTER_VALIDATE_EMAIL)
Retorna TRUE se $variavel for um endereço de e-mail ou FALSE se não for.

filter_var($variavel,FILTER_VALIDATE_FLOAT)
Retorna TRUE se $variavel for um número com ponto flutuante.

filter_var($variavel,FILTER_VALIDATE_INT)
Retorna TRUE se $variavel for um número inteiro.

filter_var($variavel,FILTER_VALIDATE_IP)
Retorna TRUE se $variavel for um número IP.

filter_var($variavel,FILTER_VALIDATE_URL)
Retorna TRUE se $variavel for uma URL válida (não necessariamente precisa existir).

Os códigos mostrados acima, simplesmente validam a informação passada. Eles não alteram nada na variável. Diferentemente do que mostrarei a seguir, que são funções de sanitização da variável:

filter_var($variavel,FILTER_SANITIZE_STRING)
Remove códigos HTML e caracteres inválidos

filter_var($variavel,FILTER_SANITIZE_ENCODED)
Codifica $variavel de acordo com a RFC 1738

filter_var($variavel,FILTER_SANITIZE_SPECIAL_CHARS)
Converte caracteres especiais de HTML como aspas, “e” comercial em códigos HTML padronizados.

filter_var($variavel,FILTER_SANITIZE_EMAIL)
Remove caracteres que um endereço de e-mail não pode conter. É interessante usar esta função após validar com o FILTER_VALIDATE_EMAIL.

filter_var($variavel,FILTER_SANITIZE_URL)
Remove caracters que não são permitidas em uma URL. É interessante usar esta função após validar com oFILTER_VALIDADE_URL.

filter_var($variavel,FILTER_SANITIZE_NUMBER_INT)
Remove pontos, vírgulas e outros caracteres, deixando somente os números. Ex.: 1a2b3c => 123

filter_var($variavel,FILTER_SANITIZE_NUMBER_FLOAT)
Remove pontos, vírgulas e outros caracteres, deixando somente os números.

Senado decide que campanha eleitoral deve ser livre na internet

Abaixo segue reprodução da matéria da Agência do Senado:

O Plenário do Senado acaba de aprovar em votação simbólica nova emenda ao projeto de reforma eleitoral (PLC 141/09) definindo que é livre a manifestação de pensamento na internet e em outros meios eletrônicos de comunicação interpessoal durante a campanha eleitoral, sendo vedado o anonimato e assegurado o direito de resposta.

Com isso, os internautas podem se manifestar contra ou a favor de qualquer candidato em blogs, sites de relacionamento como Orkut e de mensagens instantâneas como o Twitter. Páginas de veículos jornalísticos também são beneficiadas.

O texto aprovado é fruto de acordo firmado em Plenário durante a discussão de duas emendas de teor semelhante, dos senadores Alvaro Dias (PSDB-PR) e Aloizio Mercadante (PT-SP), que suprimiam artigo do texto aprovado pela Câmara que restringia o uso da internet nas campanhas eleitorais. O intuito dos senadores era justamente liberar a campanha na rede mundial de computadores.

O novo texto foi apresentado pelos relatores da matéria, senadores Eduardo Azeredo (PSDB-MG) e Marco Maciel (DEM-PE) depois que Azeredo alertou os senadores para a possibilidade de que a simples supressão daquele artigo fizesse prevalecer o entendimento do Tribunal Superior Eleitoral (TSE), que também restringia o uso da internet. Concordando com as ponderações do senador, os parlamentares decidiram apoiar a nova redação, que agora precisará ser referendada pela Câmara dos Deputados.

Página de origem

Conferência Web W3C Brasil

(Post de divulgação da Conferência Web W3C no Brasil.)

Você pode ser um palestrante da 1a. Conferência Web W3C Brasil! Se você tem um caso prático e inovador de uso da web, ou fez uma pesquisa cujos resultados merecem ser compartilhados com toda a comunidade web brasileira, ou ainda tem o “pulo do gato” para ensinar em um tutorial, então atenda a nossa Chamada de ‘Papers’, Casos de uso e Tutoriais. O prazo é até 30 de setembro de 2009.

Obs.: Inscritos com trabalhos acadêmicos selecionados receberão passagem aérea para participarem da conferência.

Consulte o site http://conferenciaweb.w3c.br/chamada-de-trabalhos para obter informações mais detalhadas.

Temas que serão debatidos na conferência:

  • tendências da web
  • o uso de padrões: benefícios imediatos e futuro
  • acessibilidade e usabilidade
  • web semântica
  • web searching
  • mobile web
  • governo eletrônico
  • segurança e privacidade
  • modelos de negócios
  • comércio eletrônico / mercado eletrônico
  • redes sociais
  • cloud computing
  • web mining
  • serviços web
  • web 2.0 / web 3.0
  • reputação em sistemas Web / Credibilidade
  • recuperação de informação na Web
  • comportamento de usuários na Web

1a. Conferência Web W3C Brasil – CHAMADA DE TRABALHOS
Papers, Casos de Uso e Tutoriais
1a. Conferência Web W3C Brasil 2009
23 e 24 de novembro de 2009 – São Paulo, SP

endereço na web: http://conferenciaweb.w3c.br/chamada-de-trabalhos
endereço e-mail
: conferenciaweb@nic.br
grupo no facebook
: http://www.facebook.com/group.php?gid=122287968751
endereço para submissão de trabalhos
: http://www.easychair.org/conferences/?conf=wwwbrasil2009
prazo
: 30/09/2009

select * from internet: Yahoo! Query Language

A internet virou um banco de dados. Há um tempo, não tenho certeza quanto, mas faz mais de um ano, a Yahoo! lançou um produto chamado YQL (Yahoo! Query Language). O YQL é um webservice que permite fazer ‘queries’ em qualquer tipo de banco de dados aberto na web. É possível até fazer queries dentro de páginas XHTML.

Com uma sintaxe muito similar ao SQL, podemos usar o YQL para pré-processar feeds de blogs, arquivos XML e outras fontes de dados disponíveis na Internet.

Para acessar o console de testes, entre em: http://developer.yahoo.com/yql/console (é necessário possuir uma Yahoo! Conta).

Disponibilizo para download um arquivo compactado com um script em PHP com um exemplo do YQL. Nele, há um formulário onde deve ser digitado um nome de uma cidade e com duas queries simples, pegaremos a previsão do tempo naquela cidade. A previsão é fornecida pelo Weather Channel.

Clique aqui e faça o download do script ou teste ele online.