Posted by André Ribeiro Camargo
Wed, 01 Sep 2010 17:26:00 GMT
ActionMailer é uma biblioteca do Rails que trata da manipulação de e-mails e nesta versão 3.0 teve várias melhorias.
Antigamente, você passava parâmetros para “view” através do método “body”, mas, na nova implementação você define os parâmetros como variáveis de instância na action do mailer e depois simplesmente as referencia na view.
Demorei algumas horas para me dar por conta disso, “herança” da versão antiga.
Para finalizar, se quiser usar os helpers na view do mailer, inclua na classe do mailer:
helper :application
Essa dica veio daqui
Muito legal ;-)
Posted in trabalho, nerd, rails, shoppings
Posted by André Ribeiro Camargo
Mon, 30 Aug 2010 17:49:00 GMT
Momentos de grande excitação na comunidade Ruby On Rails, a versão 3.0 foi lançada ontem.
Já faz alguns dias que estou trabalhando com ele, a experiência está sendo muito boa.
No momento, continuo escrevendo testes de integração, já cobri cerca de 1/3 dos módulos da aplicação dos shoppings.
Vou continuar no edge, até mesmo porque não sei quando vou terminar de portar isso :-)
Posted in nerd, rails, shoppings
Posted by André Ribeiro Camargo
Mon, 16 Aug 2010 23:09:00 GMT
Apesar de usar Debian indiretamente (já faz alguns anos que migrei para Ubuntu), meus cumprimentos a toda comunidade Debian pela passagem do 17º aniversário do projeto.
Posted in nerd
Posted by André Ribeiro Camargo
Wed, 28 Jul 2010 11:31:00 GMT
Dica legal: Faster Ruby Gems installs
Normalmente eu passava—no-rdoc—no-ri pela linha de comando mesmo.
Posted in trabalho, nerd, rails
Posted by André Ribeiro Camargo
Tue, 27 Jul 2010 17:16:00 GMT
http://graphjam.com/2010/07/26/funny-graphs-typical-website-evolution/
BOA! :-D
Posted in trabalho, nerd
Posted by André Ribeiro Camargo
Tue, 08 Jun 2010 10:30:00 GMT
Uso MySQL na aplicação dos shoppings com storage InnoDB. Funciona muito bem.
Mas ultimamente notei um gargalo de performance no banco quando tenho alguns INSERTs concorrentes na tabela de acessos (tipo uns 9). SHOW PROCESSLIST no console do mysql não mostrava outra coisa que não fosse COMMIT na informação das threads. E as requisições acabam ultrapassando a minha meta de consumir, no máximo, 1 segundo.
Pesquisei um pouco a respeito de como otimizar isso e descobri o INSERT DELAYED, vamos tentar…
Primeiro mexi no banco, ALTER TABLE nome_da_tabela ENGINE=MYISAM; para converter a tabela de InnoDB para MYISAM.
Depois alterei a aplicação, copiando o método ActiveRecord::Base#create para meu model e renomeando-o para create_without_callbacks (eu uso before_create para setar alguns atributos e queria manter os callbacks funcionando)
E para ver se funcionou, no console do MySQL rode SHOW STATUS LIKE ‘delay’; e leia aqui o significado de cada variável
Estou ansioso para comparar os logs de produção :-)
Posted in trabalho, nerd, pessoa jurídica, rails, shoppings
Posted by André Ribeiro Camargo
Mon, 31 May 2010 23:26:00 GMT
Hoje fui converter um gráfico de pizza e notei que o padrão da Gruff é usar percentuais na legenda.
Só que a Bluff tava mostrando o valor da série.
Então, ajustei o código para ficar igual ao gráfico original.
Posted in trabalho, nerd
Posted by André Ribeiro Camargo
Wed, 19 May 2010 23:27:00 GMT
Sou usuário de Gruff há muito tempo, utilizo principalmente gráfico de barras nas estatísticas dos shoppings.
Ontem, descobri o Bluff. Que pretende fazer o mesmo que o Gruff, só que usando javascript ao invés de ruby.
Gostei muito das tooltips do Bluff, então comecei a ver como seria para migrar o que tenho em Gruff.
O detalhe, é que eu queria modificar o conteúdo da tooltip, para mostrar mais dados.
A versão oficial do Bluff não suporta este recurso…
MAS, se vocês precisarem desta funcionalidade, peguem o código do meu fork no github que ele faz isso.
Dica de como fazer? Dá uma olhada neste exemplo, especificamente na função tooltips_renderer do gráfico custom_tooltips.
Agora é com a nossa criatividade, happy coding everybody!
Dica #2: gem install jake e rodem “jake” no diretório do projeto para gerar o arquivo bluff-min.js que deve ser linkado pela sua página.
Dica #3: instanciem o gráfico no window.onload… senão terão problemas no IEka.
Posted in trabalho, nerd
Posted by André Ribeiro Camargo
Mon, 10 May 2010 17:33:00 GMT
Venho utilizando o Ubuntu 10.04 desde antes do Alpha3 e na minha opinião o sistema está melhorando a cada versão. Desta vez, realmente o tempo de carregamento ficou muito mais curto e desde o lançamento o sistema está bem robusto.
Ainda sobre sistemas operacionais, ontem foi liberado a versão Alpha 2 do Haiku. Rodei a VM no VirtualBox e não funcionou a rede, aí fica muito sem graça. Preciso reservar algum tempo para ver como fazer funcionar (se for possível) para testar melhor.
ATUALIZAÇÃO:
Tip: in order to get networking running under Haiku in Virtual Box, under your virtual machine’s networking preferences, change the adapter type to ‘Intel Pro/1000 MT (82540OEM), and change to ‘NAT’ under attached to.
Muito massa! Funciona perfeito!
As coisas estão evoluindo :-)
Posted in nerd
Posted by André Ribeiro Camargo
Wed, 21 Apr 2010 00:24:00 GMT
Um cliente me pediu para integrar o site dele com o Google Analytics.
Até aí, tranquilo, é barbada.
Só que, meus portais implementam identificação única (single sign-on). O cara se identifica em um dos sites e ao acessar qualquer outro do portal o sistema mantém ele identificado.
Implementei isso autenticando o usuário num site “central” e ao acessar os outros sites o sistema faz alguns redirecionamentos para verificar se aquele cara já está logado ou não.
Robôs não deviam se identificar, logo, podemos ignorar os redirecionamentos.
Aí que veio o problema, o robozinho que verifica se o site tem o código que ativa o Google Analytics não declara User Agent algum nas requisições.
Não sei porquê… Facilitaria a vida de nós (desenvolvedores) na busca do problema que impede a identificação do site pelo GA.
Resolvi meu problema, interpretando os logs de acesso do apache para descobrir quais eram as requisições desse cara, então coloquei o IP dele na lista do meu sistema que identifica os robôs, mas…. quando será que o google vai trocar o IP deste servidor?
Se tivesse o User Agent, ficaria menos POG…
Posted in trabalho, nerd, shoppings