/ 15.Oct.2007 at 12:53am
Esta é a semana dos lançamentos. Depois do Rails 2.0 Preview Release, do 1.2.4 e do 1.2.5 Maintenance Upgrade, é a vez do grande Capistrano ganhar sua atualização 2.1 como reportou o próprio Jamis Buck algumas horas atrás.
Definitivamente eu gosto de Gems:
gem update capistrano -y
Muitas coisas são de infra-estrutura e não devem afetar o usuário comum de Capistrano como tirar a necessidade de um pseudo-TTY, desabilitar o wrapping de sh, melhor suporte a Windows para carregar arquivos binários. Algumas coisas são bem úteis para extender o Capistrano como carregar novas receitas diretamente de plugins em vendor/plugins.
Para mim o mais interessante é o suporte nativo agora ao GIT. Agradecimentos a Geoffrey Grosenbach, Garry Dolley e Scott Chacon. Agora ficou trivial fazer deployments a partir de repositórios GIT. Um bom sinal.
/ 12.Oct.2007 at 05:38pm
Pessoal, quem recentemente fez a atualização para 1.2.4 deve fazer novamente a atualização 1.2.5 conforme acabou de ser anunciado.
Dentre as manutenções estão correções um bug de cross-site scripting com JSON: se você usar JSON, atualize. Fora isso há outras correções de bugs mas menos prioritárias. Se tudo estiver funcionando e você não usa JSON, pode pular reto.
Não esqueçam de verificar o RAILS_GEM_VERSION no environment.rb.
/ 05.Oct.2007 at 03:13am
David acabou de postar sobre a versão 1.2.4 que eu disse que estava para sair nos posts anteriores.
Esta versão é para corrigir bugs e principalmente para adicionar avisos de deprecação (o que se tornará obsoleto na versão 2.0 final). Quando você ver ‘warnings’ de ‘deprecated’ preste atenção: esses warnings se tornarão mensagens de erro na 2.0.
sudo gem update rails -y
Isso deve bastar.
/ 05.Sep.2007 at 12:03am
Eu vejo pouca gente comentando por aqui mas para quem gosta de abstrações, deveriam tentar Markaby. Para que serve? Que tal ‘escrever XHTML em Ruby’. Quem acha que templating tradicional é “feio”, existem opções muito simples e atrativas.
/ 04.Sep.2007 at 11:55am
Existem várias alternativas para se instalar o pacote completo de Rails (não só o interpretador Ruby como MySQL, Apache, etc). Receitas também existem às dezenas (googlem !).
Mas este pacote é muito interessante, com suporte tanto para Linux quanto Mac: é o FiveRuns RB-Install. Baixe um único pacote e tenha a instalação completa de tudo que você precisa, num único passo. Para quem está começando talvez seja a melhor maneira de começar.
De uma só vez você baixa e instala o seguinte conjunto de ferramentas open source:
Acredito que isso deve cobrir as necessidades da maioria dos projetos. O resto é uma questão de rodar ‘gem install’ ou ‘script/plugin install’. O download é da ordem de 130Mb e a instalação precisa de cerca de 430Mb de disco. Vocês precisam preencher um formulário no site deles e receber o link de download via e-mail.
/ 10.Jun.2007 at 07:08pm
Fim de Domingo, estava lendo os posts de Charles Nutter e os tutoriais da Atlantic sobre JRuby. Resolvi que deveria ver com meus próprios olhos. Seguindo o tutorial, vamos ao que interessa, lembrando que estou rodando sobre OS X 10.4.9.
Primeiro, baixei o novíssimo binário do 1.0 direto do site. Feito isso, descompactei e coloquei onde queria, assim:
tar xvfz jruby-bin-1.0.tar.gz
mv jruby-1.0/ /opt/local/
sudo mv jruby-1.0/ /opt/local/
cd /opt/local/
sudo ln -s jruby-1.0 jruby
sudo chown -R root:admin jruby-1.0/
/ 09.Jun.2007 at 07:03am
Enfim, como prometido, a versão 1.0 estável acabou de ser anunciado. Acabei de ler no post de Ola Bini e de fato temos aqui para download o jruby-bin-1.0.tar.gz e o jruby-src-1.0.tar.gz.
O maior objetivo desta versão era ser totalmente compatível com o Ruby 1.8.5. Perfeição é impossível, mas eles chegaram bastante perto. Vocês podem ver no Issue Tracker que ainda existem 189 tickets abertos, mas apenas 7 críticos.
Portanto, eles decidiram que o estágio atual é suficiente para considerar a versão 1.0 como final e liberar para uso.
É hora de testar. Peguem seus aplicativos Rails e façam rodar! Se precisarem de um tutorial para começar, leiam este artigo.
/ 24.Apr.2007 at 06:29am
Mal falamos sobre o JRuby 0.9.8 e Thomas Enebo anunciou o lançamento do 0.9.9! Estamos a 0.0.1 da versão final! E esta versão é ainda melhor que a anterior com cerca de 180 correções, estabilizações e uma performance média 40% maior do que a versão 0.9.8. Eles realmente estão evoluindo muito rapidamente.
Finalmente, DHH resolveu tirar o suporte a Active Web Services diretamente do núcleo do Rails. Calma, ele ainda continua disponível mas com um gem. Opcionalmente você pode instalá-lo e ativá-lo no config/environment.rb. Em seu lugar, agora o Active Resource (o suporte REST) passa a ser padrão. Provavelmente quando for lançado um eventual 1.3 ou 2.0, essa mudança estará disponível a todos.
/ 30.Mar.2007 at 06:22am
Faz tempo que não faço nenhuma tradução por aqui, mas para não perder o costume esbarrei neste artigo de Dave Thomas. É um texto importante por ajudar a entender o conceito de REST e a sugestão de uma nova arquitetura, uma vez que o novo Rails 1.2 tem tudo a ver com isso. Vamos lá.
Ontem, postei uma breve nota sobre as mudanças nas convenções de URL no Rails 2.
Sam Aaron respondeu com o comentário:
Talvez eu ainda não tenha entendido essa coisa toda de REST ainda (situação mais provável), mas o re-casamento entre verbo e sujeito (ou pelo menos a perda da habilidade de facilmente distinguir entre eles) me perturba um pouco. Então (só por perguntar) minha questão é: por que um grande Hurra! foi escutado por todo canto?
Vamos ver como chegamos onde estamos. E então olharemos para uma forma diferente de pensar sobre problemas que pode ajudar a simplificar as coisas.
[continue lendo no link abaixo]
/ 26.Mar.2007 at 11:00am
Novamente, meu tempo é escasso. Mesmo assim surgiram muitas coisas legais desde meu último pacotão de novidades.

Fiquei muito contente com a repercussão do meu último post, Um Desabafo. Existem mais assuntos que me deixam um tanto frustrado ou mesmo em reflexão. Um deles é exatamente tema deste outro post, The death of Agile. Não é tanto céu nem terra mas de fato as práticas Agile deixam um pouco a desejar. Todas as metodologias mainstream, Agile ou não, usam a mesma tática: quando um projeto dá certo e, por acaso, metodologia X ou Y foi usada, o mérito é da metodologia. Se outros projetos que usaram as mesmas metodologias deram errado, a culpa é da equipe que não soube implementar as práticas corretamente. Esse é, de novo, a famosa falácia da causa-e-efeito: ‘ontem eu fiz a dança da chuva, por isso hoje choveu’, ou seja, o efeito não tem, necessariamente, a ver com a causa. Tentarei discorrer sobre isso em outro artigo.
Esse comentário é pouco ortodoxo mas me lembrou do Papa João Paulo II, quando sofreu um atentado em Roma e disse que a bala foi desviada pelas mãos de Nossa Senhora de Fátima. Alguém poderia perguntar então, já que ela se deu ao trabalho de desviar, porque não tirar a bala completamente do caminho?
Voltando ao assunto, um conjunto de ferramentas que eu já mencionei antes e que parece promissor é o Hobo. No fundo me parece uma maneira de começar um projeto Rails de maneira mais rápida e prática. Ele tem alguns geradores que extendem os originais, conjuntos de helpers mais abrangente, infraestrutura de autenticação. Esses screencasts devem ajudar.
O assunto JRuby continua esquentando. Desde o lançamento da última versão 0.9.8 muitas pessoas estão fazendo seus experimentos inclusive sobre deployment de uma aplicação Rails em Tomcat como Dr. Nic descreve neste post.
Falando em Java e Ruby, surgiu uma pequena discussão de Grails vs Rails. O autor do artigo avisa que não é uma medição rigorosa. Várias alternativas de benchmark foram lançadas. Nem Grails nem JRuby on Rails são exatamente estáveis ainda. Há muito chão a ser percorrido e benchmark de performance, na minha opinião, são irrelevantes nesse ponto. O principal para a equipe do JRuby é conseguir rodar Rails sem absolutamente nenhum problema, com todos os drivers JDBC disponíveis e com todos os mecanismos de deployment dos application servers do mercado como JBoss, Glassfish ou Tomcat. Esse campo de integração Java-Rails é muito promissor e eu espero que vá muito mais longe.
Outro campo promissor é o de aplicações Web no desktop. Esse assunto começou a ficar famoso depois que empresas como Stardock, Yahoo!, Apple, Google e Microsoft lançaram produtos como Object Desktop, Konfabulator, Dashboard, Google Desktop, Sidebar. Agora existem milhares de Gadgets, Widgets que as pessoas consomem diariamente a muitos não sabem que esses mini-aplicativos são, na maioria, feitos com HTML e Javascript. Produtos da Web utilizados no Desktop.
Com Rails, alguns querem dar um passo extra. A Joyeur lançou o Joyent Slingshot. Sua proposta é ser um tipo de “máquina virtual Rails” para rodar aplicativos Rails offline, no desktop, como um aplicativo. E com vantagens adicionais, por exemplo, de sincronização do banco de dados local com o do servidor. A maior vantagem disso é levar a facilidade de programação Web para gerar aplicativos que antes demandariam muito mais tempo com toolkits como Java Swing.
Finalmente, tivemos recentemente o lançamento do Typo 4.1. Depois um longo hiato, finalmente surgiu uma versão compatível com o novo Rails 1.2.x. Em cerca de dois meses a versão 4.2 deve ser lançada.
Meu blog roda sobre Typo. Talvez ninguém tenha notado mas eu fiz o upgrade para a versão 4.1 e com isso estamos rodando sobre Rails 1.2. Ainda não investi muito tempo nisso, mas quero melhorar a localização. Eu traduzi o arquivo de linguagens para pt_BR (não sei se já existia) mas mesmo assim muitos strings não foram traduzidos.
/ 07.Feb.2007 at 03:25am
Ontem pela manhã eu vi que o Rails 1.2.2 havia sido disponibilizado via gems e postei aqui. Fiz a atualização e coloquei os changelogs no blog porque procurei pela blogosfera e não achei nada a respeito. Até o Thiago notou que no repositório de desenvolvimento nem havia sido liberada a tag 1.2.2.
À tarde, saiu o post do DHH explicando do que se tratava. Segue a tradução (mais uma …) falando sobre isso. Mais abaixo Chad dá uma dica para quem tiver problemas com o novo RubyGems (que o Rails 1.2.2 precisa a partir de agora).
/ 06.Feb.2007 at 03:33am
Pessoal, saiu do forno agora: gem update rails
O Core Team lançou mais algumas mudanças de última hora e versionou como 1.2.2
O changelog não explica muita coisa mas dentre o que veio de novo estão:
activesupport 1.4.1:/ 25.Jan.2007 at 07:54am
Fonte: techno weenie
Em cada aplicação Rails existem várias coisas para configurar. Você pode precisar configurar um endereço de e-mail que o plugin exception_notification usa, ou talvez apenas inflexões customizadas. Vamos dar uma olhada nas opções disponíveis atualmente à nossa disposição:
/ 24.Jan.2007 at 02:34pm
Fonte :the { buckblogs :here }, por Jamis
Em Named, explicit routes eu mencionei Object#with_options de passagem, somente para descobrir depois que este método super útil não consta na documentação da API do Rails! Desde então corrigi essa situação no trunk, mas o método é útil o suficiente (particularmente em conjunto com routing) que achei que valeria a pena blogar a respeito.
O ponto doloroso que inspirou o método é esse: suponha que você tem um punhado de chamadas de métodos, todos aceitando um hash de opções como último parâmetro, e muitos deles compartilhando um ou mais das mesmas opções. Definições de Routes são o exemplo canônico disso:
1 2 3 4 5 6 7 |
map.create_message "/msg/create/:id", :controller => "message", :action => "create" map.delete_message "/msg/delete/:id", :controller => "message", :action => "delete" map.message "/msg/:id", :controller => "message", :action => "get" # etc, etc, etc |
Feio! E definitivamente não muito DRY também. Uma maneira de resolver isso é definir uma variável separada que contém o hash de opções em comum, e usar Hash#merge para adicionar a diferença em cada chamada:
1 2 3 4 5 6 7 8 |
common = { :controller => "message" }
map.create_message "/msg/create/:id",
common.merge(:action => "create")
map.delete_message "/msg/delete/:id",
common.merge(:action => "delete")
map.message "/msg/:id",
common.merge(:action => "get")
# etc, etc, etc
|
Melhor, mas ainda não muito DRY. Object#with_options é a resposta de Rails a esse padrão:
1 2 3 4 5 6 7 8 9 |
map.with_options :controller => "message" do |msg| msg.create_message "/msg/create/:id", :action => "create" msg.delete_message "/msg/delete/:id", :action => "delete" msg.message "/msg/:id", :action => "get" # etc, etc, etc end |
Ah! A duplicação foi embora! Muito melhor.
Embora eu pessoalmente use isso primariamente para definição de routes, isso pode ser usado em qualquer lugar onde aparecem hashes de opções como último parâmetro … o que descreve a maioria das interfaces no Rails. Tem um punhado de associações em um model, todos os quais declarados dependentes de um pai?
1 2 3 4 5 6 7 |
class Blog < ActiveRecord::Base with_options :dependent => :destroy do |parent| parent.has_many :authors parent.has_many :posts parent.has_many :themes end end |
Coisa boa! (E mais um exemplo do poder dos blocos no Ruby. Para os curiosos, vocês podem ler a implementação do with_options no projeto ActiveSupport do Rails, aqui e aqui. Tudo dito, isso tem menos de 30 linhas de código, então é fácil de pegar. (Parabéns a Sam Stephenson) pela bela implementação.
/ 24.Jan.2007 at 12:21pm
Fonte: techno weenie
O processo de inicialização do Rails mudou de maneiras súbitas para o Rails 1.2 por causa da recodificação de dependências e algumas mudanças em plugins. Se estiver interessado em extender o framework Rails através de plugins, é muito importante entender esse processo. O segredo para tudo isso é mantido no Rails::Initializer#process.
Latest Comments
"Aí vai uma lista com livros que cobrem Rails 2: ..."
lucas húngaro / 11.May.2008 at 10:38pm
"Akita, great post, and great help with this pdf + movie!
jose / 11.May.2008 at 05:39pm
"Ressuscitando este post! Muito bom o texto, no momento me e..."
raul souza lima / 10.May.2008 at 07:53pm
"Akita, perguntei isso em outro tópico mas tive resposta. O..."
raul souza lima / 10.May.2008 at 06:38pm
"Opa, Muito bom ver que os railers brasileiros est..."
thiago pradi / 10.May.2008 at 11:53am
"Amigo, procuro por empresas que prestem serviço ..."
guilherme / 10.May.2008 at 06:53am
"É muito bom ver que os americanos estão procurando por br..."
felipe / 09.May.2008 at 11:35pm
"@Bruno Eu discordo, apesar de ter apenas ótimos livros naq..."
thiago freire / 09.May.2008 at 05:47pm
"Eu li o Agile Web etc, e achei bom. Apesar de ter 700 pagin..."
thiago freire / 09.May.2008 at 05:40pm
"“se querem livros”, eu diria pra não ler uma p..."
bruno zanchet / 09.May.2008 at 05:36pm