Posted by André Ribeiro Camargo
Wed, 12 Jan 2011 15:20:00 GMT
Ainda não coloquei em produção a nova versão dos shoppings em Rails3.
Inicialmente, resolvi migrar as rotinas de retaguarda (que rodam pelo cron).
Foi aí que me dei por conta que a nova aplicação estava “ratiando” com as datas e horas.
Para deixar como funcionava no Rails 1.1.6, coloquei no config/application.rb:
config.time_zone = 'Brasilia'
config.active_record.default_timezone = :local
Parece que agora está tudo OK novamente…
2011 já chegou, tenho que fazê-lo melhor do que o ano passado. Particularmente não gostei de 2010, ainda bem que terminou.
Posted in trabalho, nerd, rails, shoppings
Posted by André Ribeiro Camargo
Wed, 01 Dec 2010 01:16:00 GMT
Se ao tentar instalar o RVM acontecer algo semelhante a
acamargo@storm:~$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
-sh: syntax error near unexpected token `<'
Certifique-se que tenha CURL instalado!!!
Posted in trabalho, nerd, rails
Posted by André Ribeiro Camargo
Sat, 27 Nov 2010 21:54:00 GMT
Pela primeira vez na minha vida, vejo isso:
andre@amazonpc:~/rails/shopping3$ rake
(in /home/andre/rails/shopping3)
Loaded suite /home/andre/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Finished in 10077.328468 seconds.
2062 tests, 36943 assertions, 0 failures, 0 errors
Significa que todos os testes de integração do shopping passaram.
Leva quase 3h para rodar tudo, que dureza.
Mas, me encheu de coragem para colocar em produção :-)
Estamos próximos do final da migração para Rails3, aleluia!
Posted in trabalho, nerd, rails, shoppings
Posted by André Ribeiro Camargo
Fri, 15 Oct 2010 11:07:00 GMT
Ando quieto por aqui porque o bicho tá pegando na migração da aplicação dos shoppings de Rails 1.1.6 para 3.0.
Já tenho testes de integração de todos módulos do sistema, em vários contextos. São mais de 100 arquivos…
Durante este trabalho, acabei descobrindo alguns probleminhas no Rails. O primeiro deles (Fix for ActionView::Template#refresh in rails 3.1.0.beta) já reportei foi incluído no framework. Já o segundo ainda falta criar um teste que reproduza o problema e demonstre que foi resolvido.
Nosso servidor de testes já está rodando a versão em Rails 3, mas ainda não está maduro suficiente para publicar em produção.
De qualquer forma, gostaria muito de concluir isso ainda este mês.
EM TEMPO, fui me dar por conta somente agora que dia 14 do mês PASSADO o PelotasCenter completou 4 anos “no ar”, parabéns a toda equipe o fica meu MUITO OBRIGADO a todos clientes que tornaram isso possível. Ontem ainda publicamos o novo site da Emilice Calçados e da Associação dos Engenheiros Agrônomos de Pelotas arredondando a conta para 50 sites participantes do portal de negócios pelotense.
Por enquanto era isso, eu mando notícias.
Posted in trabalho, pessoa jurídica, rails, shoppings
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
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
Sun, 25 Jul 2010 20:52:00 GMT
Esta é útil para quem armazena sessões no banco de dados.
Antigamente, para acessar o model bastava “session.model”, agora tem que ser através de “request.env[‘rack.session.record’]”.
Fica a dica…
Posted in trabalho, rails
Posted by André Ribeiro Camargo
Sat, 24 Jul 2010 01:40:00 GMT
Aventura continua, já tenho doze requisições passando no teste de integração do portal. Antes tinha ZERO testes, então, acho que estamos evoluindo rapidamente.
Mas, só passei para avisar aqueles que estão migrando do Rails 1.1.6, para QUALQUER versão superior, sobre o “problema do parâmetro que contém pontos”.
Exemplo:
Aplicação deve processar uma requisição cujo caminho possui pontos, tipo:
/descadastrar/andre@boaideia.inf.br
A rota no Rails 1.1.6 seria:
map.connect "descadastrar/:email", :controller => "controlador", :action => :acao
Para funcionar no Rails3, tem que fazer:
match "descadastrar/:email" => "controlador#acao", :constraints => { :email => /.*/ }
Daí vai funcionar beleza, o “problema” é que apartir da versão 2.0 o Rails utiliza os pontos para escolher o formato da resposta da requisição.
Ai ai, já fazia algumas horas que eu estava procurando entender o motivo pelo qual essa versão 3 me retornava “No route matches”. Coisa triste a ignorância.
PS: NESTE caso, como o parâmetro é um endereço de correio eletrônico, vocês podem até utilizar um regex mais apropriado do que este do exemplo.
Fui!
Posted in trabalho, rails, shoppings
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