Depois de ler a notícia no excelente Ruby Inside de como criar um Twitter bot com Ruby, criei coragem e montei o meu.

O código abaixo é quase identico ao disponível no repositório do projeto no GitHub, com apenas uma correção e uma customização:

E para rodar o bot, é preciso instalar as gems descritas acima e executar ruby bot.rb em um terminal.

Pode melhorar esta solução? Faça um fork dela e me avise! ;-)

Eu já conhecia o YSlow a algum tempo, mas nunca havia seguido a risca as verificações que o Yahoo propõe. Na semana passada, em uma conversa com o Thiago (@thiagobfiorenza), ele comentou sobre o case do MyTVShows que passou da classificação “F” para “C”.

Resolvi então fazer algumas experiências para tentar diminuir o tempo de carregamento da nosso Portal Corporativo SaaS, o PCT4. Ele estava classificado como “F” também. Após algumas pequenas modificações no arquivo .htaccess, ele passou para a classificação “B”. No nosso caso, isto representou uma economia de ~200kb de download!

As linhas mágicas:

Claro que existem outras alterações a serem feitas (e que já haviam sido implementadas nesse sistema), para que pudesse ter esse ganho expressivo com somente essas instruções de compactação e cache no .htaccess. Mas isso é assunto para um próximo post.

Pode melhorar esta solução? Faça um fork dela e me avise! ;-)

O Cassio Marques acabou de anunciar a boa nova: Rails Guides em Português do Brasil.

Parabéns a toda equipe de tradução!

Integrar sistemas ERP antigos com aplicações web normalmente é algo complicado.  Quando a carga de informações tem um tamanho considerável e a frequência de atualização é alta, os problemas aumentam.

Em duas aplicações web desenvolvidas na Tecmedia, o desenvolvedor do ERP envia arquivos de dump SQL para o servidor web em um intervalo de tempo pré-definido. Para importar estes arquivos com segurança, implementei um shell script que que verifica a integridade usando md5sum, descompacta os dumps .sql.bz2 e importa os dados diretamente no MySQL.

Optei pelo uso de shell script para evitar sobrecarregas sem necessidade em outros serviços do servidor, como Apache, PHP, etc.

Não gostou da solução? Faça um fork dela e me avise! ;-)

O PROBLEMA:
Recentemente tivemos a necessidade de criar uma forma de reduzir as URLs  que eram enviadas por email, para evitar problemas com quebra de linha nas mensagens que são enviadas em text/plain. Essas URLs tem uma característica especial: Autenticam automaticamente o usuário através de um token e redirecionam para um conteúdo específico.

Sendo assim, não poderíamos utilizar um sistema público de encurtador de URLs nem deixar exposto o identificador da URL (Ex.: http://url.com/u/001), pois os usuários poderiam tentar combinações e acabar acessando informações restritas de outras contas do sistema.

A SOLUÇÃO:
Inspirado no post do startupi falando sobre o alpha do migre.me, pesquisei sobre o algoritmo de base62 visando economizar caracteres na identificação da URL.

Veja o exemplo abaixo:

8 equivale 8
9 equivale 9
10 equivale a
11 equivale b
12 equivale c
(...)
1033 equivale gF
1034 equivale gG
1035 equivale gH
1036 equivale gI

E assim por diante.

Mesmo assim, um usuário mais esperto consegue deduzir a lógica dessa compressão em base62 e pode começar a fazer suas tentativas. É aí que entra o algoritmo de codificação usando base64 e md5. Confesso, a idéia desse algoritmo é um pouco maluca, mas funciona muito bem.

Em ação:

100000 equivale 1wADMwATM6c65b (usando a chave 'chave-secreta')
200000 equivale 0wADMwAjM3f793 (usando a chave 'chave-secreta')
(...)

Caso algum dos caracteres seja modificado, a função de decodificação irá retornar false e você pode redirecionar o usuário para uma página de acesso negado.

ARREMATE:
Armazene isto em uma tabela com PRIMARY_KEY numérica e um campo para a URL original. Depois é só usar os dois algoritmos e gerar URLs como as abaixo:

ID:1000    http://url.com/u/1wADMwATM6c65b
ID:2000    http://url.com/u/0wADMwAjM3f793

Não gostou da solução? Faça um fork dela e me avise! ;-)

Be remarkable

In: off

17 Mar 2009

Depois da dica óbvia do Chad Fowler no Rails Summit Latin America, com uns 5 meses de atraso, resolvi tentar ser remarkable. Não estou falando do plugin do Carlos Brando e sim de compartilhar o trabalho e conhecimento do dia a dia.

Enquanto não publico nada, fique ligado no meu twitter.

Sobre

Ricardo Duarte, 26 anos, trabalha na Tecmedia, atua como desenvolvedor web a mais de 12 anos, já tendo passado por diversas tecnologias. Este blog irá comentar um pouco destas experiências.

rduarte's tweets

Categorias

Arquivos