Hoje quero passar uma dica rápida, porem útil. É sobre um post na Smashing Magazine, que fala em princípios para construir um CSS limpo (7 Principles Of Clean And Optimized CSS Code), ótima leitura. Mas quero me focar especialmente em uma parte do post, a primeira: Use Shorthand.
Eu sempre peno nesse item, nunca sei qual dos atributos do CSS, quando colocados na mesma linha (padding: 5px 6px 20px 3px), se referencia a qual das propriedades (top, right, bottom e left). O atributo font também é complicado para usar com as propriedades na mesma linha.
Usar essa técnica nos trás dois benefícios bem simples: um CSS mais curto e mais rápido. Sim, pode parecer um beneficio irrelevante, mas tratando-se de mais de mil linhas de CSS isso se torna um diferencial tanto em tempo quanto em tamanho do arquivo. Lembre-se, seu usuário fará download deste arquivo, e você - ou seu cliente - pagara a conta da banda excedida no fim do mês.
Criei uma referencia rápida com as imagens que estão no post original e estou colocando aqui para quem quiser utilizar também. Bom uso!
Sempre gostei da web “por dentro”, para ser mais especifico, dos protocolos e por conseqüência das conexões e portas. Gosto de entender como as coisas funcionam. Um tempo atrás eu estava intrigado com o login do orkut, queria entender como o Google tratava a autenticação de um serviço. Comecei a analisar os requests com o Firebug e até sniffer (Wireshark). Depois de bastante insistência consegui construir um script que fazia login no orkut, fazendo autenticação no Google. Depois de um baita esforço eu fui descobrir que o Google disponibiliza uma documentação sobre autenticação em sua base - mais uma lição: procure antes.
O Ruby Snapshot de hoje é sobre isso: como conectar no orkut com um script Ruby? Abaixo do código vou explicar o que fiz. Vale lembrar que essa não é a melhor implementação - construir um objeto seria a melhor -, mas esse não é o objetivo do Snapshot, aqui são códigos curtos com grandes funcionalidades.
Vejam que o código está organizado em seis blocos separados por uma linha em branco. No primeiro coloco os “requires” necessários para fazer os requests ao orkut e Google. Vou usar a forma segura de autenticação (HTTPS). No segundo bloco crio duas variáveis, nome do usuário e senha da conta no Google. Até aí, nada de mais.
No terceiro bloco crio um objeto Net::HTTP para o host www.google.com na porta padrão para HTTPS, 443. Depois atribuo valores relativo ao tipo de conexão segura (SSL). Agora vem uma parte importante, é necessário pegar o token de autenticação no Google, é uma chave que será usada para acessar o orkut - a “prova da autenticação sucedida”. Para pegá-la faço um request à /accounts/ClientLogin passando usuário, senha e o nome do serviço que quero fazer login, nesse caso, o orkut. Faço um tratamento com o retorno do request e coloco dentro da variável auth.
Agora vamos ao orkut, no quarto bloco. Crio um objeto HTTP para o host www.orkut.com e faço um request em /RedirLogin.aspx, passando a chave de autenticação que recebi do Google. Do retorno do request, pego o cabeçalho HTTP set-cookie. Esse cabeçalho solicita ao navegador - no nosso caso, script - que há um novo valor de cookie para armazenar. Esse cookie é muito importante, ele armazena a chave das nossas informações no servidor do orkut, a famosa chave de sessão.
Já estou logado no orkut! Agora só preciso fazer um request à qualquer página interna que terei seu conteúdo como retorno - só não esqueça do cookie. No exemplo faço um request à pagina inicial do usuário, mas poderia ser um outro perfil, comunidade e até uma busca no conteúdo do orkut. Depois salvo o resultado em um arquivo HTML, é só abrir no browser pra conferir.
Com poucas modificações é possível fazer login em outros serviços do Google, como GMail por exemplo.
Agora você pode conferir aquele perfil que é proibido pela patroa e ainda dizer que está programando!
Uma coisa que eu me preocupo bastante é com o meu ambiente de trabalho. Não só fisicamente como virtualmente também. Uso Textmate para desenvolver em Ruby/Rails e recentemente me deparei com o que foi pra mim o melhor tema (Theme) até agora: Github Textmate Theme.
Pra quem não conhece o tema do Github, aí vai um exemplo. Achei muito limpo, ótimo para trabalhar com todos os principais formatos que envolvem Rails (rb, erb, html, css, js).
Hoje foi uma dica bem rápida. Fiquem ligados que vou colocar um novo Ruby Snapshot bem interessante nos próximos dias.
Segue o link do site do desenvolvedor do tema, inclusive com adaptação para VIM (ver comentários).