Ryan Bates publicou hoje mais um screencast em seu excelente site Railscasts.com.

No episódio desta segunda ele mostra como gerar pdfs utilizando a gem PDF::Writer, confira aqui.

Anúncios

Rails é baseado em uma série de princípios, práticas e filosofias. A maioria já existia, mas foi a partir da popularização do Rails que esses conceitos foram alavancados e passaram a ser conhecidos também em outras comunidades de desenvolvedores.

Isso nos leva à conclusão de que, perdurando ou não, Rails cumpriu seu papel: quebrar paradigmas, contribuir para uma geração de desenvolvedores mais competentes e valorizar o pragmatismo ao invés da burocracia e lentidão do mundo corporativo.

Conheça abaixo alguns princípios do Rails e do desenvolvimento ágil em geral:

Continue lendo…


As “colunas mágicas” do Rails são aquelas automaticamente gerenciadas pelo framework, como created_at e updated_at no caso de timestamps. Essa funcionalidade é muito útil, mas às vezes precisamos desativá-la.

Um caso como esse ocorreu comigo: possuo uma tabela com uma coluna chamada last_viewed_at, à qual gerencio manualmente atualizando a data sempre que um registro é visualizado pelo usuário para efeito de pesquisas e estatísticas no sistema. Como nessa mesma tabela há as colunas mágicas, o Rails atualizava a coluna update_at toda vez que eu fazia a alteração mencionada acima. Para mim isso não era interessante: essa coluna só deveria ser atualizada quando houvesse alteração feita pelo usuário.

A solução que encontrei foi desabilitar as o gerenciamento automático dos timestamps, fazer a alteração e então habilitar a funcionalidade novamente, desta forma:

ActiveRecord::Base.record_timestamps = false
# alteração no registro
ActiveRecord::Base.record_timestamps = true

Obs: vale lembrar que isso vale apenas para as colunas mágicas relacionadas à timestamps. Existem outras como type, id e lock_version, entre outras.

Se alguém souber de uma forma melhor para conseguir esse comportamento, escreva nos comentários.


Blocos no Ruby

29out07

Ao iniciar em Ruby, uma das coisas que pode ser difícil de entender é o conceito de blocos (ou, funções anônimas) e, principalmente, como utilizá-los de forma eficiente.

Recentemente, encontrei três bons artigos sobre o tema:

Understanding Ruby blocks, procs and methods

Building blocks in ruby

Becoming a blockhead


De acordo com o blog iBrasten, estas são três coisas que um desenvolvedor Ruby deveria estar acompanhando:

1. JRuby: o projeto caminha rapidamente e pode ser realmente o catalisador que Ruby on Rails precisa para entrar no “mundo corporativo”.

2. NetBeans: os desenvolvedores do NetBeans estão realmente engajados em torná-lo o melhor ambiente integrado para desenvolvimento em Ruby e Rails. Suporte a bundles, auto-complete, refactoring, RDoc integrado, execução de tarefas do Rake atrávés de menus de contexto são alguns dos recursos do produto.

3. Glassfish: um servidor de aplicações robusto e com desempenho muito bom. Com o avanço do JRuby, pode se tornar a resposta para o “problema” da estabilidade e desempenho dos servidores Rails atuais (o que, na maioria das vezes, não é um problema, mas seria uma arma a mais para refutar muitos argumentos infundados).

Conhece mais algum projeto que mereça nossa atenção? Deixe a dica nos comentários!


Integração contínua é outra prática fundamental nas metodologias ágeis.

Em linhas gerais, integração contínua é a prática de constantemente enviar as alterações feitas no código fonte ao sistema de controle de versão para que os demais desenvolvedores sempre trabalhem com a versão mais atualizada do código. Recomenda-se também que esse processo inclua testes unitários, garantindo que todo código integrado ao servidor está correto e não “quebra” outra parte da aplicação.

Leia mais aqui e aqui.

Recentemente foram escritos dois posts muito bons sobre o assunto. Você pode conferí-los no blog da ImproveIT e do Urubatan.

Nesses posts também é possível aprender sobre integração contínua síncrona e integração contínua assíncrona. Obrigado ao Vinícius e ao Urubatan pelas ótimas referências.


Como já disse anteriormente aqui, o NetBeans está com uma ótima integração com Rails. A versão full (Java, Ruby, C++, UML etc) fica um pouco lenta no Windows (no Linux e no MacOS X roda bem) e, por isso, recomendo baixar apenas a versão para Ruby.

Veja mais informações no site oficial.


Uma das práticas mais fortes das metodologias ágeis é o desenvolvimento guiado por testes, Test-Driven Development. Leia sobre o assunto aqui.

Uma corrente mais nova desenvolveu o Behavior-Driven Development (desenvolvimento guiado por comportamento), uma evolução do TDD, buscando tornar a prática mais natural através de técnicas como a Ubiquitous Language.

Gregg Pollack do site RailsEnvy recentemente publicou um vídeo de sua apresentação sobre testes e BDD em Rails no grupo de usuários de Orlando, veja aqui: How I learned to love testing.


ubuntu_logo

Foi liberada hoje a nova versão da distribuição Linux Ubuntu, na sua versão 7.10 (ou Gutsy Gibbon). Veja o press release.

Como de costume, você pode pedir um CD gratuitamente ou baixar a imagem no site oficial: http://www.ubuntu.com/.

Usuários da versão 7.04, ou Feisty Fawn, podem atualizar o sistema para a versão mais nova.

Veja algumas novidades da nova versão:


Quando você “enrosca” em algum problema durante o desenvolvimento com Rails, existem alguns lugares onde você pode procurar ajuda. A comunidade Rails costuma ser muito “solidária” e prestativa.

Seguem alguns links dos recursos que utilizo quando as coisas não dão certo: