Posts de May, 2011

[Rafael Biriba] Raptcha: Um captcha simples para aplicações Rails

Friday, May 6th, 2011

 

Humor: Robôs lendo o captcha

Captcha é um teste de desafio cognitivo, utilizado como ferramenta anti-spam. O que acontece é que um script automatizado (um robô), não consegue ler o texto embaralhado nas imagens. Isso faz com que seja uma excelente ferramenta para combater o spam ou prevenir que scripts tenham acesso a determinadas áreas.

Recentemente tive que procurar uma gem (um pacote do rubygems) de captcha para minha aplicação rails, mas que fosse a mais simples possível e sem nenhuma dependência externa.

Vi que a mais utilizada é a gem recaptcha, que utiliza a estrutura da API do google de captcha (google.com/recaptcha). Para resolver o meu problema ela não serve, já que o meu projeto vai rodar em máquinas sem acesso a internet.

Então ao continuar a busca por uma boa gem de captcha, recebi a recomendação de usar o Raptcha.

O Raptcha é realmente muito simples de configurar e de usar. Ele usa o Image Magick para renderizar as imagens em tempo real.

Em alguns casos isso pode ser um problema, mas no caso da minha aplicação, não havia necessidade de cachear as imagens.

Ao lado temos um exemplo do uso do raptcha.

Você pode conferir a documentação de instalação pelo link: https://github.com/ahoward/raptcha

Quando estava fazendo os meus testes, tive dificuldade para fazer as letras do captcha aparecer. Se isso acontecer, tente instalar o pacote GhostScript. Se você estiver usando o ubuntu, o imagemagick e o ghostscript tem no synaptic. Se você usa macbook, ambos os pacotes podem ser instalados pelo repositório do brew (não sei se tem no ports).

Um outro problema que eu tive que resolver, foi implementar o botão de gerar outro captcha. Infelizmente o raptcha não da suporte nativo a isso. Mas pode ser facilmente resolvido usando Ajax. O que eu fiz foi colocar no controller um render partial como mostra o código a seguir:

1
2
3
4
5
6
7
8
9
10
11
class RaptchaController < ApplicationController
 
  def index
    Raptcha.render(controller=self, params)
  end
 
  def get_form
    render :partial => "form"
  end
 
end

E no partial “form” ficou assim:

1
<%= raw Raptcha.input %>

Dessa forma, a chamar a url: http://localhost:3000/raptcha/get_form obtemos o retorno de todo o form do raptcha:

1
2
3
4
5
6
7
8
<div class="raptcha">
   <img class="raptcha-image" src="/raptcha?e=DaROXGWrRTrLdYXmJ05iKg" alt="Imagem de validação" width="242" height="68" />
 
   <label><img id="captcha-reload" title="Recarregar imagem" src="/images/mini-reload.gif" alt="" />Digite as letras acima:</label>
 
   <input class="raptcha-input box" name="raptcha[t]" type="textarea" />
   <input class="raptcha-word" name="raptcha[w]" type="hidden" value="DaROXGWrRTrLdYXmJ05iKg" />
   <input class="raptcha-timebomb" name="raptcha[b]" type="hidden" value="nEZ-sQYpOFC2YIE2qhAjeQ" /></div>

Então basta você colocar uma ação no botão #captcha-reload e obter um novo form por ajax e substituir o form antigo na página de sua aplicação. Fazendo assim, você poderá recarregar o seu captcha quantas vezes precisar…

Então é isso… Se você precisa de uma solução simples para o captcha em seu projeto, experimente o Raptcha usando as dicas acima… ;)

Leia também:


[Guilherme Garnier] Ajude o Firefox a crescer com o Test Pilot

Thursday, May 5th, 2011

A principal característica de projetos open source é que qualquer pessoa pode contribuir com eles. Geralmente quando falamos em contribuir com este tipo de projeto, logo pensamos em código fonte – corrigir um bug ou implementar uma melhoria. Mas na verdade podemos contribuir de várias formas (para mais informações sobre o modelo open source, recomendo a leitura do famoso artigo The Cathedral and the Bazaar, de Eric Raymond), mesmo sem conhecimento técnico. Outra possibilidade é através de ajuda na documentação – melhorar uma documentação incompleta ou traduzir para outras línguas. Porém, apesar de não exigir conhecimentos específicos, exige tempo, o que nem sempre as pessoas têm disponível.

No caso do Firefox, há uma outra forma de contribuir para o projeto, que não exige qualquer conhecimento específico. É através do Test Pilot, uma extensão que, ao ser instalada, exibe uma lista de estudos sendo conduzidos pela Mozilla. Sempre que surgir um novo estudo, você poderá ver os detalhes dele e optar por participar ou não. O estudo que acontece com mais frequencia é o “A Week in the Life of a Browser”, onde, caso você aceite participar, durante uma semana o Test Pilot monitorará informações sobre o seu uso do browser, como memória utilizada, número de abas abertas simultaneamente, número de downloads e de bookmarks – ou seja, nenhuma informação sensível do usuário é coletada. No final do período do estudo, esses dados são enviados para a Mozilla, mas antes você pode ver exatamente que informações serão enviadas através de gráficos como esse:

Alguns estudos são pesquisas sobre usabilidade e funcionalidades específicas, como mecanismos de busca e uso de bookmarks e dos botões na toolbar. Para ver os estudos já realizados, acesse a página de test cases. Para participar, basta instalar a extensão.

Posts relacionados:



[Andrews Medina] Dev In Cachu eu fui!

Wednesday, May 4th, 2011

No dia 30 de abril em Cachoeiro de Itapemirim aconteceu o primeiro Dev In Cachu, um evento com o foco de reunir desenvolvedores do sul do Espírito Santo para compartilhar conhecimentos e experiências.

O evento teve um nível bem legal de palestras, falando sobre ensino 2.0, colaboração e software livre, refactoring, TDD e agilidade com a participação de palestrantes como o Jeveaux e Hackin da Giran, Henrique Bastos, Erich Egert da Caelum entre outros.

Além disso contou com uma ótima infra estrutura e organização, tendo coffe breaks e etc.

Eu tive a honra de participar do evento em uma palestra com o Francisco Souza falando sobre o uso de Python para vários propósitos, já que é uma linguagem multi propósitos.

A idéia da palestra era demonstrar 12 trabalhos usando Python, assim como teve os 12 trabalhos de Hércules, mas, devido ao tempo abordamos apenas 4 trabalhos. Mas, vou deixar esse assunto para um outro post.

Para finalizar, os slides da palestra:

[Rafael Biriba] The Wilderness Downtown: Experimento do Google usando HTML5

Wednesday, May 4th, 2011

Apesar de ser um experimento já antigo, resolvi blogar assim mesmo, pois algumas pessoas ainda não o conhecem…

The Wilderness Downtown foi um projeto experimental do google, lançado em 2010, usando HTML5 e o navegador Chrome.

O projeto é simplesmente fantástico, baseado essencialmente em JavaScript, HTML5, Canvas, SVG, Google Street View e na API do Google Maps.

Tudo começa ao informar um endereço real. A partir das imagens do Google Maps e Street View, o vídeo de um rapaz correndo abre em uma das abas, e na outra, a posição de onde o rapaz está correndo aparece na região que você informou.

Enquanto isso, alguns pássaros voam sobre os mapas e até pelo video, sendo que eles são animações feitas no canvas. Note que na tela inicial (onde você informa o endereço) os pássaros são sensíveis a posição do mouse. Então, se você tentar toca-los, eles irão mudar de direção… :)

Durante a exibição, você poderá fazer um desenho e inclusive podendo utilizar as letras do teclado para escrever algo. A cada tecla pressionada, uma animação de máquina de escrever é reproduzida  logo a baixo. O mais impressionante disso tudo, é que depois que passam alguns segundos, os pássaros voltam voando e pousam em todas as linhas que você fez no desenho.

Você pode acessar e conferir tudo em: http://www.thewildernessdowntown.com/ (recomenda-se o uso do navegador Chrome)

Leia também:


[Emerson Macedo] Duostack lança hospedagem Beta de Node.JS

Monday, May 2nd, 2011

poucas horas atrás, a Duostack lançou uma hospedagem beta de Node.JS. Essa hospedagem está muuuuito parecida com a do Heroku. A documentação está ótima, muito melhor que a da Joyent e que dá Nodester. Pode parecer bobeira, mas documentação faz toda a diferença pra quem precisa de um host desse tipo. Já criei minha conta e estou fazendo alguns testes. Quando testar melhor, postarei aqui minhas primeiras impressões sobre o serviço.

Crie logo a sua conta, pois por enquanto não tem coupon mas é provável que passe a ter.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

[Emerson Macedo] Duostack lança hospedagem Beta de Node.JS

Monday, May 2nd, 2011

poucas horas atrás, a Duostack lançou uma hospedagem beta de Node.JS. Essa hospedagem está muuuuito parecida com a do Heroku. A documentação está ótima, muito melhor que a da Joyent e que dá Nodester. Pode parecer bobeira, mas documentação faz toda a diferença pra quem precisa de um host desse tipo. Já criei minha conta e estou fazendo alguns testes. Quando testar melhor, postarei aqui minhas primeiras impressões sobre o serviço.

Crie logo a sua conta, pois por enquanto não tem coupon mas é provável que passe a ter.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.