Wagner Andrade

A Vida, Programação, o Universo e Tudo Mais

HTML5 Snapshot: Placeholder

Tenho escrito pouco, voltei a dar aula e isso tem me tomado um bom tempo. Mas daqui a uns dias já estou voltando ao ritmo normal.

No blog antigo, criei uma sessão de artigos que acabou ficando famosa: Ruby Snapshot. Eram pequenos trechos de código Ruby que realizavam tarefas bem interessantes.

Agora estou iniciando o HTML5 Snapshot. A idéia é a mesma, mas dessa vez a tecnologia é HTML5. Vamos ao primeiro artigo, placeholder.

Uma funcionalidade muito elegante, que vai deixar seus forms mais minimalistas. O placeholder nada mais é do que uma label dentro do input de texto, bem discreta.

Não custa lembrar que não vai funcionar se o navegador ainda não suporta HTML5 (e provavelmente você está vendo esse site todo quebrado).

A implementação é muito simples:

<input type="text" placeholder="Insira seu nome aqui" />

E o resultado é esse (Google Chrome 6.0.472.0):

HTML5 Placeholder - Wagner Andrade

Antes mesmo do HTML5 já era possível simular esse comportamento com javascript, mas nada melhor do que o próprio navegador implementar.

Escondendo emails dos spammers

SPAM é a praga da década. Eu diria que já matou mais gente que a H1N1. Ok, pode ser um exagero, mas não deixa de ser praga.

Existem listas de emails criadas por spammers, que são os caras legais que enviam SPAM. Esses emails são “mineirados” de diversas formas, a principal delas é a utilização de web crawlers, varrendo a internet atrás de endereços de email dando sopa.

Sendo assim, um endereço que está escrito em um HTML disponível na web está suscetível a ser indexado por um crawler do mal. Resumindo: email na internet é fonte de spam.

Ronald Leite, parceiro das antigas, percebendo que meu email estava desprotegido das ameaças externas, me sugeriu um serviço do reCAPCHA que eu não conhecia, o mailhide.

É só inserir um email que o mailhide exibe um HTML para escondê-lo, criando um link para inserir um CAPCHA e aí sim exibí-lo. Não entendeu? Exemplo com o meu endereço então:

cont@wagnerandrade.com

Achei válido para alguns casos em que é necessário exibir um email publicamente. Agora chega de endereço prostituído por spammers.

Uma plataforma de, apenas, escrever: Wind

Não é segredo que mudei a plataforma deste blog. O segredo foi, até agora, qual foi a bendita plataforma escolhida. A resposta é simples: nenhuma!

Sou muito adepto do não refazer o que já tem pronto, nesse caso uma plataforma de blog. Mas existe uma diretriz que coloco na frente desta, a simplicidade. É uma fator pessoal, admito. Nesse ponto que não encontrei nenhuma plataforma que me deixasse à vontade.

Analisei várias opções. Queria apenas escrever, sem firulas, dentro do meu domínio. Escrever coisas que não cabem no Twitter. O mais próximo do que queria encontrei no jekyll, mesmo assim, não me adaptei. Não quero nenhum empecilho entre eu e meu notepad.

Aí que pensei: vou fazer como EU quero. Surgiu o Wind.

Uma plataforma de escrever feita com HTML5 (alguns navegadores não suportam ainda), utilizando Ruby e Sinatra, roda sobre os bancos mais conhecidos (qualquer suportado pelo Sequel). Essencialmente flexível e de fácil manutenção.

Ok, fiquei feliz. Agora não tenho quase nada entre eu e meu notepad.

Para mais informações sobre a plataforma, acesse o README que está em um repositório no github.

Quem quiser contribuir, de qualquer forma, é bem vindo!

O que é Web Crawler?

Recentemente recebi um e-mail de dúvida do leitor Adair Martins. Não é o primeiro sobre esse (interessante) assunto. Vou publicá-lo, junto com minha resposta, para sanar uma duvida comum.

Quem quiser complementar minha resposta é bem-vindo, use os comentários.

Bom dia Wagner,

Sou estudante do Curso de Sistemas de Informação, e estou no ultimo período. Tenho que terminar meu TCC, estou fazendo sobre web semântica e o professor que me orienta me sugeriu que eu fizesse uma aplicação que conseguisse pegar as informações sobre futebol, por exemplo, de varios sites.

Estou a procura, já faz quase um mês, e nao encontrei nada. Vendo seu artigo no iMasters, me pareceu muito interessante. Gostaria de saber se você não tem algum material que pudesse me ajudar a criar essa aplicação, se possível em java, pois é a linguagem que tivemos mais contato no curso.

Desde já agradeço a atenção.

Bem legal o assunto do seu TCC, isso (semantica) é o futuro da internet.

O que você vai desenvolver é técnicamente chamado de Web Crawler. Exemplo disso é o GoogleBot, crawler que o google desenvolveu para ficar varrendo a internet, indexando conteúdo para pesquisarmos através do famigerado Google.com.

O artigo da wikipedia sobre Web Crawler é bem completo. No fim do artigo existe uma lista de implementações de crawlers em linguagens e plataformas diferentes, inclusive em java.

Existe bastante material sobre esse assunto, até em português.

Abraço!

Remover acentos em Ruby

Quantas vezes você precisou remover acentos de malditas palavras em qualquer linguagem de programação? É recursivo, sempre aparece.

Em Ruby eu nunca tinha encontrado uma solução legal, pequena e que cumprisse a missão. Esses dias precisei de novo, trocar acentos por “letras normais”. Foi aí que encontrei o Extend String, um pequeno script que faz o trabalho sujo.

A utilização é bem simples, através de meta-programação esse script injeta dois métodos de instancia na classe String. Assim:

require 'extend_string'

str = "Isso é bem fácil!"

str.removeaccents
str.urlize
str.gsub(' ', '-').urlize

Resulta nisso:

Isso e bem facil!
issoebemfacil
isso-e-bem-facil

Mel na teta, né!?

Update

Tino Gomes comentou sobre a gem brstring, do Brazilian Rails. É uma implementação mais completa. Pra quem quer um pouquinho mais de sofisticação é uma boa pedida. Obrigado Tino!

Sobre

Simplicidade é a ausência de artifícios, extravagâncias e excessos de ordem material, social ou psicológica.

Família, futebol, automobilismo, ler, escrever, churrasco, cerveja, fotografia, cinema e programação… Sou um entusiasta da programação de computadores. Já trabalhei com diversas linguagens e tecnologias diferentes, sendo as principais Ruby, .NET e Java.

Também sou professor de desenvolvimento de software orientado a objetos, mantenho um blog sobre o assunto (você está aqui) e escrevo no iMasters. Formando em Segurança da Informação e técnico em Telecomunicações.

  • cont@wagnerandrade.com

Desculpem o incomodo

Pessoal que acompanha o blog pelo feed, desculpem o incomodo.

Os mesmos artigos repetiram algumas vezes. Foi uma instabilidade provocada pela troca de plataforma – vou falar sobre isso em um post mais a frente.

Agora o feed estabilizou. Obrigado pela paciência!

Um pouco mais sobre símbolos em Ruby

Um dos recursos mais utilizados da linguagem Ruby são os símbolos (:isso_eh_um_simbolo). O simbolo tem a funcionalidade interesante, como a String: interpolação.

Tudo isso é a mesma coisa:

:ola_mundo

"ola_mundo".to_sym

:"ola_mundo"

str = "ola"
:"#{str}_mundo"

Fantástico vídeo da McLaren

Quem me conhece sabe o quanto gosto de automobilismo. Acabei de ver um video de arrepiar. Simplesmente fantástico!

Button e Hamilton entram na garagem da McLaren e, dentre tantos carros históricos, destapam o mítico MP4-4 de 88. Carro guiado por Senna, companheiro de Prost naquele ano. Perderam apenas uma corrida do mundial, travando uma batalha doméstica que nunca mais vai ser esquecida.

WebKit, alguns truques

CSS é fácil, muito. Criar um estilo legal não – vide esse blog.

Não gosto de botões estilizados, sinceramente, prefiro os botões padrões do sistema operacional – especialmente do mac. Questões de usabilidade, padrão visual e, principalmente, gosto. E isso não se discute.

O problema é que esse estilo padrão dos botões é muito sensível ao CSS aplicado sobre ele. Não precisa muito para o navegador transformá-lo em quadrado cinza, terrível.

Me invoquei com isso. De alguma forma eu deveria conseguir “resetar” esse estilo! Encontrei… para os navegadores que utilizam WebKit – Chrome e Safari.

-webkit-appearance: push-button;

Esse estilo faz com que qualquer elemento assuma o estilo default de um push-button, o clássico botão nosso de cada dia.

Fui pesquisar sobre isso, jamais tinha ouvido falar desse recurso. Encontrei outros! Tem uma página na Apple que explica esse e outros truques com mais detalhes.

Bom apetite.

Next page →