ruby, rails, linux, php, seo and ui
In: ruby
12 May 2009Depois 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! ![]()
In: apache
10 Apr 2009Eu 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! ![]()
In: rails
10 Apr 2009O Cassio Marques acabou de anunciar a boa nova: Rails Guides em Português do Brasil.
Parabéns a toda equipe de tradução!
In: bash
9 Apr 2009Integrar 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!
In: php
8 Apr 2009O 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
In: off
17 Mar 2009Depois 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.
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.