O que há de errado com o software “corporativo”
Começando pelo final: o software “corporativo” é feito para quem o compra, não para quem o utiliza.
Atualmente, até mesmo nas pequenas empresas brasileiras, permeia um pensamento bizarro: quanto mais processos, documentos, burocracia, horas extras e falta de transparência, melhor. É o chamado comportamento corporativo.
Em algum momento da história, sabe-se lá por qual motivo, as pessoas passaram a acreditar que todas as empresas devem copiar fielmente o modelo de trabalho das grandes corporações. Isso é compreensível até certo ponto, afinal, essas corporações “deram certo”. No entanto, é muito esquisito ver pequenas empresas, que deveriam se aproveitar dessa característica, se prejudicarem por adotar esse modelo.
Símbolos do Ruby
Vi ontem no blog do Satish Talim e o Akita acaba de publicar em seu blog um artigo especial que ele escreveu sobre os símbolos do Ruby, algo que parece totalmente alienígena para programadores de outras linguagens iniciando em Ruby, mas é simples e muito útil.
Em inglês: http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symbols/
Em português: http://www.akitaonrails.com/2007/11/26/ruby-symbols
Aproveitem também para baixar a apostila de Ruby do Satish e entrar no fórum do site. É mais uma boa fonte para aprender Ruby.
Migrando para o Rails 2.0?
Você está migrando para o Rails 2.0? Então vale a pena conferir os screencasts sobre o tema no Railscasts, de Ryan Bates.
Na semana passada foi publicado o screencast “Simplify Views with Rails 2.0“. Hoje foi publicado o “Fixtures in Rails 2.0“. Vale a pena conferir.
Para uma visão geral do Rails 2.0, visite o Peepcode e compre o pdf “Rails2 PDF“.
Problemas com código-fonte no Wordpress.com
Na última semana o plugin para mostrar código-fonte em posts no Wordpress.com parou de funcionar. Os posts ainda estão legíveis, mas fica um pouco estranho.
Fiz uma consulta ao fórum e parece ser um problema geral. Enviei um e-mail a eles comunicando. Espero que isso seja corrigido em breve.
“Brincando” com o pluralizer do Rails
Geoff Grosenbach tem uma seção muito útil em seu site que você pode utilizar para testar os resultados de vários métodos do pluralizer do Rails.
O “Pluralization Tester” recebe uma string e mostra os resultados de métodos como pluralize, humanize, camelize e vários outros.
HasFinder - estendendo e encadeando condições de busca
HasFinder é uma extensão ao ActiveRecord criada por Nick Kallen, da Pivotal Labs, que permite a flexibilização de métodos customizados de busca, ao estilo do que é possível fazer com with_scope ou com os plugins scope_out e scope_proxy.
A diferença é que o HasFinder permite o encadeamento de condições e também o uso das mesmas em associações. Exemplos:
Definindo os métodos de busca e suas condições:
1 2 3 4 | class Article has_finder :published, :conditions => {:published => true} has_finder :popular, :conditions => ... end |
É possível encadeá-los ou usar outros métodos sobre eles:
1 2 3 | Article.published.popular Article.published.popular.count Article.popular.find(:first) |
Trabalhando com associações:
1 2 3 4 5 6 | class User has_many :articles end user.articles.popular.find(:first) user.articles.published.popular.average(:view_count) |
Também é possível estendê-los com blocos:
1 2 3 4 5 6 7 | class Article has_finder :unpublished, :conditions => {:published => false} do def published_all find(:all).map(&:publish) end end end |
Leia mais aqui.
Melhorando as condições em seus métodos de pesquisa
O Carlos Brando publicou em seu blog uma dica muito legal sobre o parâmetro conditions dos métodos de pesquisa do Rails. Vale a pena conferir.
Gerando pdfs em sua aplicação Rails
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.
Princípios do Rails
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:
Rails - Desabilitando as “colunas mágicas” relacionadas a timestamps
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.