15 dias on Rails – Dia 2 – Por que Ruby on Rails?
December 25, 2009 - No comments yet
Por que Ruby on Rails?
Quando eu comecei a estudar Ruby on Rails e a partir daí comentar com colegas de trabalho e outros programadores que não conheciam o framework, sempre surgia a mesma pergunta: “Por que estudar Rails se já existe PHP, .NET, Java e Python?”.
Hm, essa pergunta é dificílima de responder (ainda mais por que Rails não é uma linguagem e sim um framework), muito tem ligação com o prazer de conhecer algo novo e focado para web, apenas para web, porém com pilares que rementem a agilidade, colaboração, facilidade e abrangência.
Separei nesse post os principais motivos para estudar e desenvolver aplicações web utilizando o framework Ruby on Rails.
Feito para Web.
A origem do framework Ruby on Rails já me remete ao seu principal foco, ou seja, aplicações web. O Ruby on Rails não foi concebido como um framework, e sim foi gerado a partir do desenvolvimento da ferramenta Basecamp da 37Signals. Como padrão os frameworks, sejam eles voltados para PHP, Java, Python ou .NET, são pensados e planejados como tal, porém a situação inversa vivenciada por Hansson fez com que o Rails obtivesse sucesso, pois está intimamente ligada ao dia-a-dia e as principais demandas do desenvolvimento para Internet.
Outro fator que considero ser importante é que por ser feito para web o Rails não se preocupa em ser a melhor ferramenta para diversos objetivos, como é o caso do Java e .NET, sendo assim o foco é, e aparentemente continuará sendo, todo para desenvolvimento para Internet.
Ágil, Fácil e Eficiente
O Rails faz uso de convenções no lugar de configurações (Convention over Configuration), mais abaixo vou falar delas, isso facilita muito o trabalho, pois não te obriga a fazer várias configurações antes de iniciar o projeto.
Outro fator importante é a existência de ferramentas geradoras de código (leia-se scaffold) que possibilitam que sem nenhuma linha de código, apenas execução de comandos, que você consiga desenvolver uma aplicação web simples, porém funcional, em alguns poucos minutos.
O Ruby, a linguagem utilizada na concepção do Rails, é orientado à objetos como o Java, mas também é possível usá-lo para criar scripts simples. O Ruby on Rails não necessita compilação, pois o Ruby é uma linguagem interpretada, ou seja, a cada alteração, basta abrir o navegador e atualizar sua aplicação e verá o resultado.
Até as validações de formulários e entradas de dados em geral é muito simples, pois o framework já foi preparado para isso. Mas não só as validações como dezenas de outras tarefas são partes integrantes do Rails, uma que eu particularmente acho muito interessante é a forma de fazer associações entre classes.
David Heinemeier Hansson, criador do Ruby on Rails, mostra neste vídeo como criar um blog em 15 minutos.
Open Source e Comunidade Ativa!
Não só open source (código aberto), mas também independente de plataforma (como o Ruby), ou seja, roda no Linux, Mac OS e Windows. Isso significa que qualquer um é livre para modificar seu código e também não envolve custo de aquisição. Sendo multi-plataforma, o Ruby on Rails possibilita a você (ou sua empresa) o “prazer” de não ficar “amarrado” a um sistema operacional específico.
Atualmente o Ruby ocupa a 10a. colocação no TIOBE Programming Community Index e vem subindo a cada ano. Esse crescimento é resultado da quantidade de informação sobre a linguagem nas mais diversas fontes como Google, Yahoo, Bing, Wikipedia e Youtube.
A comunidade é bem ativa, vide o caso do GitHub onde contém centenas de projetos e plugins que podem ser utilizados no Rails. O GitHub também funciona como uma rede social, pois é possível seguir os usuários que mais lhe interessar, além de assinar feeds e participar do wiki.
Uma busca no Google com certeza lhe revelará mais alternativas. Farei um post específico sobre o ecossistema do Ruby on Rails.
WebDesigners são bem-vindos…
Parece besteira, mas quem trabalha ou trabalhou em equipes de desenvolvimento sabe que existe uma constante barreira entre programadores e webdesigners.
O MVC (model-view-controller) já ajuda bastante nessa quebra de barreiras, pois o pessoal de sistema pode se preocupar mais com o modelo e o controlador, deixando que a equipe de webdesign atue sem problemas na camada de visualização. O código elegante e humanamente legível colabora bastante com isso também.
A utilização do IDE RadRails, também ajuda bastante, pois facilita o trabalho de quem conhece pouco de programação. Óbvio que para quem tem mais familiaridade e conceito, ferramentas como o RadRails são uma “mão na roda”.
Outro fator bem bacana é a integração com o Script.aculo.us, Prototype e JQuery, que são conjuntos de bibliotecas Javascript que formam cada um desses frameworks Ajax. Para quem descobriu o quanto RIA (rich internet application) é valorizado, esse pode e deve ser um ponto positivo.
E falando em RIA, com a utilização do Adobe Flex, com certeza a aplicação será, pelo menos na questão visual, muito mais atrativa. Dê uma olhada nesse link.
Peças-chave na Agilidade e Praticidade.
MVC
Um dos pontos fortes do Ruby on Rails é a forte utilização do padrão MVC (model-view-controller) que tem como função isolar as regras de negócio da interface exibida ao usuário, permitindo assim, que programadores e webdesigners possam trabalhar juntos e de forma eficiente.
O MVC pode ser entendido como uma divisão de tarefas em um aplicativo. View é a página HTML gerada, e o código que responsável por gerar os dados dinâmicos para o HTML é o Controller. E, por fim, o Model é a camada de comunicação com os dados armazenados, sejam eles em um banco de dados ou arquivos XML.
ORM / ActiveRecord
ORM (object-relational mapping) segue a implementação do padrão Active Record pensado por Martin Fowler, por isso o ORM do Ruby on Rails é conhecido como ActiveRecord. O ORM é uma técnica de desenvolvimento onde as tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.
Convention over Configuration
Com o intuito de reduzir a necessidade de configuração pesada, a equipe por trás do Rails criou regras (convenções) para facilitar o trabalho de configuração da aplicação. Essas convenções tem como objetivo acelerar o desenvolvimento, além de manter o código legível e conciso.
Rake
É similar ao Ant, porém escrito em Ruby. A função do Rake é automatizar o desenvolvimento, é um utilitário importante para simplificar tarefas como por exemplo publicar em um banco de dados as configurações definidas no arquivo de migrações (você verá em um próximo post).
RESTful
Caso não conheça o conceito de REST, sugiro dar uma lida neste link. Porém, o básico é que uma URL deve descrever o recurso disponibilizado, por exemplo: http://www.seusite.com/carros/ford-fusion-2009-gasolina-preto e não algo que estamos acostumados como http://www.seusite.com/carros?id=730.
Quem já programa aplicações web deve estar bem familiarizado com os métodos GET e POST, no Rails foram adicionados também os métodos PUT (para modificação de dados) e DELETE (exclusão de dados).
Alguns benefícios da utilização de REST em uma aplicação web:
- URLs amigáveis;
- Diferentes tipos de resposta como XML além do HTML;
- Menos codificação;
- Codificação mais clara e limpa.
Retrabalho? Tô fora! (DRY)
DRY (Don’t Repeat Yourself, Não se repita) é o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros. Wikipedia
Para ajudar a manter o código limpo, o Rails segue o conceito DRY. A idéia por trás dele, é simples: sempre que possível, reutilize código! Isto reduz as possibilidades de erros, mantém o seu código limpo e ainda o mais importante: é possível retirar uma boa carga de trabalho quando reutilizamos nosso código.
Mapa Mental desse post
15 dias on Rails
Básico do Ruby on Rails
Publicado em Programação Tagged: ActiveRecord, adobe flex, ajax, Convention over Configuration, framework, howto, Internet, mvc, open source, opensource, orm, radrails, rails, ruby, ruby on rails, tutorial, webdesign
15 dias on Rails – Dia 2 – Por que Ruby on Rails?
December 25, 2009 - No comments yet
Por que Ruby on Rails?
Quando eu comecei a estudar Ruby on Rails e a partir daí comentar com colegas de trabalho e outros programadores que não conheciam o framework, sempre surgia a mesma pergunta: “Por que estudar Rails se já existe PHP, .NET, Java e Python?”.
Hm, essa pergunta é dificílima de responder (ainda mais por que Rails não é uma linguagem e sim um framework), muito tem ligação com o prazer de conhecer algo novo e focado para web, apenas para web, porém com pilares que rementem a agilidade, colaboração, facilidade e abrangência.
Separei nesse post os principais motivos para estudar e desenvolver aplicações web utilizando o framework Ruby on Rails.
Feito para Web.
A origem do framework Ruby on Rails já me remete ao seu principal foco, ou seja, aplicações web. O Ruby on Rails não foi concebido como um framework, e sim foi gerado a partir do desenvolvimento da ferramenta Basecamp da 37Signals. Como padrão os frameworks, sejam eles voltados para PHP, Java, Python ou .NET, são pensados e planejados como tal, porém a situação inversa vivenciada por Hansson fez com que o Rails obtivesse sucesso, pois está intimamente ligada ao dia-a-dia e as principais demandas do desenvolvimento para Internet.
Outro fator que considero ser importante é que por ser feito para web o Rails não se preocupa em ser a melhor ferramenta para diversos objetivos, como é o caso do Java e .NET, sendo assim o foco é, e aparentemente continuará sendo, todo para desenvolvimento para Internet.
Ágil, Fácil e Eficiente
O Rails faz uso de convenções no lugar de configurações (Convention over Configuration), mais abaixo vou falar delas, isso facilita muito o trabalho, pois não te obriga a fazer várias configurações antes de iniciar o projeto.
Outro fator importante é a existência de ferramentas geradoras de código (leia-se scaffold) que possibilitam que sem nenhuma linha de código, apenas execução de comandos, que você consiga desenvolver uma aplicação web simples, porém funcional, em alguns poucos minutos.
O Ruby, a linguagem utilizada na concepção do Rails, é orientado à objetos como o Java, mas também é possível usá-lo para criar scripts simples. O Ruby on Rails não necessita compilação, pois o Ruby é uma linguagem interpretada, ou seja, a cada alteração, basta abrir o navegador e atualizar sua aplicação e verá o resultado.
Até as validações de formulários e entradas de dados em geral é muito simples, pois o framework já foi preparado para isso. Mas não só as validações como dezenas de outras tarefas são partes integrantes do Rails, uma que eu particularmente acho muito interessante é a forma de fazer associações entre classes.
David Heinemeier Hansson, criador do Ruby on Rails, mostra neste vídeo como criar um blog em 15 minutos.
Open Source e Comunidade Ativa!
Não só open source (código aberto), mas também independente de plataforma (como o Ruby), ou seja, roda no Linux, Mac OS e Windows. Isso significa que qualquer um é livre para modificar seu código e também não envolve custo de aquisição. Sendo multi-plataforma, o Ruby on Rails possibilita a você (ou sua empresa) o “prazer” de não ficar “amarrado” a um sistema operacional específico.
Atualmente o Ruby ocupa a 10a. colocação no TIOBE Programming Community Index e vem subindo a cada ano. Esse crescimento é resultado da quantidade de informação sobre a linguagem nas mais diversas fontes como Google, Yahoo, Bing, Wikipedia e Youtube.
A comunidade é bem ativa, vide o caso do GitHub onde contém centenas de projetos e plugins que podem ser utilizados no Rails. O GitHub também funciona como uma rede social, pois é possível seguir os usuários que mais lhe interessar, além de assinar feeds e participar do wiki.
Uma busca no Google com certeza lhe revelará mais alternativas. Farei um post específico sobre o ecossistema do Ruby on Rails.
WebDesigners são bem-vindos…
Parece besteira, mas quem trabalha ou trabalhou em equipes de desenvolvimento sabe que existe uma constante barreira entre programadores e webdesigners.
O MVC (model-view-controller) já ajuda bastante nessa quebra de barreiras, pois o pessoal de sistema pode se preocupar mais com o modelo e o controlador, deixando que a equipe de webdesign atue sem problemas na camada de visualização. O código elegante e humanamente legível colabora bastante com isso também.
A utilização do IDE RadRails, também ajuda bastante, pois facilita o trabalho de quem conhece pouco de programação. Óbvio que para quem tem mais familiaridade e conceito, ferramentas como o RadRails são uma “mão na roda”.
Outro fator bem bacana é a integração com o Script.aculo.us, Prototype e JQuery, que são conjuntos de bibliotecas Javascript que formam cada um desses frameworks Ajax. Para quem descobriu o quanto RIA (rich internet application) é valorizado, esse pode e deve ser um ponto positivo.
E falando em RIA, com a utilização do Adobe Flex, com certeza a aplicação será, pelo menos na questão visual, muito mais atrativa. Dê uma olhada nesse link.
Peças-chave na Agilidade e Praticidade.
MVC
Um dos pontos fortes do Ruby on Rails é a forte utilização do padrão MVC (model-view-controller) que tem como função isolar as regras de negócio da interface exibida ao usuário, permitindo assim, que programadores e webdesigners possam trabalhar juntos e de forma eficiente.
O MVC pode ser entendido como uma divisão de tarefas em um aplicativo. View é a página HTML gerada, e o código que responsável por gerar os dados dinâmicos para o HTML é o Controller. E, por fim, o Model é a camada de comunicação com os dados armazenados, sejam eles em um banco de dados ou arquivos XML.
ORM / ActiveRecord
ORM (object-relational mapping) segue a implementação do padrão Active Record pensado por Martin Fowler, por isso o ORM do Ruby on Rails é conhecido como ActiveRecord. O ORM é uma técnica de desenvolvimento onde as tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.
Convention over Configuration
Com o intuito de reduzir a necessidade de configuração pesada, a equipe por trás do Rails criou regras (convenções) para facilitar o trabalho de configuração da aplicação. Essas convenções tem como objetivo acelerar o desenvolvimento, além de manter o código legível e conciso.
Rake
É similar ao Ant, porém escrito em Ruby. A função do Rake é automatizar o desenvolvimento, é um utilitário importante para simplificar tarefas como por exemplo publicar em um banco de dados as configurações definidas no arquivo de migrações (você verá em um próximo post).
RESTful
Caso não conheça o conceito de REST, sugiro dar uma lida neste link. Porém, o básico é que uma URL deve descrever o recurso disponibilizado, por exemplo: http://www.seusite.com/carros/ford-fusion-2009-gasolina-preto e não algo que estamos acostumados como http://www.seusite.com/carros?id=730.
Quem já programa aplicações web deve estar bem familiarizado com os métodos GET e POST, no Rails foram adicionados também os métodos PUT (para modificação de dados) e DELETE (exclusão de dados).
Alguns benefícios da utilização de REST em uma aplicação web:
- URLs amigáveis;
- Diferentes tipos de resposta como XML além do HTML;
- Menos codificação;
- Codificação mais clara e limpa.
Retrabalho? Tô fora! (DRY)
DRY (Don’t Repeat Yourself, Não se repita) é o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros. Wikipedia
Para ajudar a manter o código limpo, o Rails segue o conceito DRY. A idéia por trás dele, é simples: sempre que possível, reutilize código! Isto reduz as possibilidades de erros, mantém o seu código limpo e ainda o mais importante: é possível retirar uma boa carga de trabalho quando reutilizamos nosso código.
Mapa Mental desse post
15 dias on Rails
Básico do Ruby on Rails
Posted in Programação Tagged: ActiveRecord, adobe flex, ajax, Convention over Configuration, framework, howto, Internet, mvc, open source, opensource, orm, radrails, rails, ruby, ruby on rails, tutorial, webdesign
15 dias on Rails – Dia 1 – Instalando o Ruby e RubyGems no Ubuntu
December 16, 2009 - No comments yet
Instalando o Ruby e RubyGems no Ubuntu
Depois do post introdutório sobre Ruby (Introdução ao Ruby) e antes de iniciar minha trajetória no Ruby on Rails, preciso instalar o Ruby e o RubyGems em meu computador que tem o Ubuntu como sistema operacional. O processo de instalação é bem tranquilo e instalar o Ruby e o RubyGems no Ubuntu é fácil. Antes de instalar vamos atualizar nossa lista de repositórios e também nosso sistema.
$ sudo apt-get update
$ sudo apt-get upgrade
Depois de atualizarmos nosso Ubuntu, então vamos instalar o Ruby. Para isso execute o comando:
$ sudo apt-get install ruby build-essential libopenssl-ruby ruby1.8-dev
Os pacotes que serão instalados são:
- Ruby – é o pacote que contém o Ruby;
- Build-Essential – este pacote contém uma lista informativa de pacotes que são considerados essenciais para a construção de pacotes Debian;
- LibOpenSSL-Ruby – este pacote faz com que o Ruby esteja habilitado para usar a OpenSSL (basicamente utilizado para criptografia);
- Ruby1.8-Dev – necessário para compilar módulos Ruby.
Após termos instalado o Ruby, então vamos verificar se tudo correu bem. Primeiramente vamos confirmar a versão instalada:
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
Agora vamos fazer um “Alo Mundo” só pra receber um feedback que está tudo ok:
$ ruby -ropenssl -rzlib -rreadline -e "puts :'Ola Mundo'";
Ola Mundo
Pronto. Agora só falta instalar o RubyGems para o básico do Ruby estar presente em seu Ubuntu. Para isso vamos executar o comando:
$ sudo apt-get install rubygems
Após instalado, então também vamos ver se está ok. Eu sempre executo o comando com o parâmetro solicitando a versão:
$ gem -v
1.3.5
Tudo funcionando… o próximo passo é conhecer e entender como funciona o Ruby on Rails.
15 dias on Rails
Básico do Ruby on Rails
Publicado em Programação, Redes Tagged: apt-get, howto, ruby, ruby on rails, rubygems, tutorial, ubuntu
15 dias on Rails – Dia 1 – Introdução ao Ruby
December 16, 2009 - No comments yet
15 dias on Rails - Dia 1 - Introdução ao Ruby
O primeiro dia estudando Ruby on Rails serviu para relembrar a origem deste framework, ou seja, fui reler sobre Ruby e seu paradigma, ví algumas apresentações no Slideshare e vídeos no Youtube. Aproveitei também para atualizar minha lista de pessoas que sigo no Twitter e adicionar algumas pessoas interessantes.
A origem do Ruby…
Para começar em Ruby on Rails é necessário conhecer e entender um pouco da linguagem Ruby. Criado pelo japonês Matz (Yukihiro Matsumoto) em 1995.
Gosto muito da definição dada pelo site Ruby-Lang.org (http://www.ruby-lang.org/pt/):
Uma linguagem dinâmica, open source com foco na simplicidade e na produtividade. Tem uma sintaxe elegante de leitura natural e fácil escrita.
Segundo a Wikipedia, Ruby é:
Ruby é uma Linguagem de programação interpretada, com Tipagem Dinâmica e forte, orientada a objetos e, com várias semelhanças com Perl, Python e SmallTalk.
Segundo o site oficial, Matz reuniu também um pouco de suas linguagens favoritas Eiffel, Ada, e Lisp na criação do Ruby.
Em Ruby, tudo é um objeto. Cada trecho de informação e código podem receber as suas próprias propriedades e ações.
Até o momento já foi lançada a versão 1.9.x do Ruby que basicamente corrige falhas de segurança da versão 1.8.x
O Ruby está caminhando para a versão 2.0 que tem como principal vedete o projeto YARV (Yet Another Ruby VM) que adiciona uma máquina virtual para acelerar a execução e fornecer um bytecode para compilação de scripts Ruby. “Olha o Ruby executável aí gente!”
Multi-plataforma
Esse é uma das características que mais me agradam em Ruby. Como o Java, C, Python entre outras, o Ruby é totalmente independente de plataforma, podendo ser utilizado tanto no Linux (minha preferência), quanto no Windows e também no Mac OS.
Além de ser multi-plataforma o Ruby também possui implementações como o JRuby para Java e o IronRuby e Ruby.NET para a plataforma .NET da Microsoft.
IRB (Interactive Ruby Shell)

IRBInteractive Ruby Shell
O IRB é um terminal interativo para Ruby. Básicamente você digita seus trechos de códigos Ruby e estes trechos são executados e retornados pelo IRB. Sua utilidade básica é testar trechos de códigos Ruby antes de inseri-los em seu programa, permitindo assim um teste simples que pode possibilitar uma rápida correção.
No Linux, caso você tenha o Ruby instalado (veja mais abaixo: Instalando o Ruby no Ubuntu). Basta acessar o console (terminal) e digitar irb na linha de comandos:
$ irb
A partir daí o IRB já está esperando pelos seus códigos. Por exemplo:
$ irb
irb(main):001:0> def media a, b
irb(main):002:1> (a + b) /2
irb(main):003:1> end
=> nil
irb(main):004:0> media 10, 20
=> 15
RubyGems, o APT do Ruby

Ruby Gems
RubyGems é um gerenciador de pacotes (os pacotes são chamados de gema ou gem em inglês) no estilo APT das distribuições baseadas em Debian (isso inclui o Ubuntu), porém o RubyGems é para Ruby (meio óbivo, né?) e fornece um formato padrão para distribuição de bibliotecas e até programas escritos em Ruby. O RubyGems agora é uma biblioteca padrão da versão 1.9 do Ruby.
Características e Funcionalidades do RubyGems
- Fácil instalação e exclusão de pacotes RubyGems (e suas dependêncis também);
- Gerenciamento e controle dos pacotes “baixados”;
- Gerenciamento de dependência de pacotes;
- Consulta e listagem de pacotes instalados (locais) e remotos;
- Suporte a instalação de múltiplas versões de um pacote;
- Interface web para visualizar a documentação das gemas (gems) instaladas;
- Interface que permite a criação dos suas próprias gemas.
O RubyGems torna fácil, bem fácil, tarefa de instalar (ou remover) um plugin ou um programa em Ruby.
Veja mais em: www.rubygems.org
Agora já conhecemos o básico sobre Ruby no próximo post vamos instalar o Ruby e o RubyGems no Ubuntu. Até a próxima.
Mapa Mental utilizado neste post
15 dias on Rails
Básico do Ruby on Rails
Publicado em Programação Tagged: bytecode, irb, ironruby, jruby, linguagem interpretada, oop, orientação à objetos, rails, ruby, ruby on rails, ruby.net, rubygems, ubuntu, yarv
15 dias on Rails – Dia 1 – Instalando o Ruby e RubyGems no Ubuntu
December 16, 2009 - No comments yet
Instalando o Ruby e RubyGems no Ubuntu
Depois do post introdutório sobre Ruby (Introdução ao Ruby) e antes de iniciar minha trajetória no Ruby on Rails, preciso instalar o Ruby e o RubyGems em meu computador que tem o Ubuntu como sistema operacional. O processo de instalação é bem tranquilo e instalar o Ruby e o RubyGems no Ubuntu é fácil. Antes de instalar vamos atualizar nossa lista de repositórios e também nosso sistema.
$ sudo apt-get update
$ sudo apt-get upgrade
Depois de atualizarmos nosso Ubuntu, então vamos instalar o Ruby. Para isso execute o comando:
$ sudo apt-get install ruby build-essential libopenssl-ruby ruby1.8-dev
Os pacotes que serão instalados são:
- Ruby – é o pacote que contém o Ruby;
- Build-Essential – este pacote contém uma lista informativa de pacotes que são considerados essenciais para a construção de pacotes Debian;
- LibOpenSSL-Ruby – este pacote faz com que o Ruby esteja habilitado para usar a OpenSSL (basicamente utilizado para criptografia);
- Ruby1.8-Dev – necessário para compilar módulos Ruby.
Após termos instalado o Ruby, então vamos verificar se tudo correu bem. Primeiramente vamos confirmar a versão instalada:
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
Agora vamos fazer um “Alo Mundo” só pra receber um feedback que está tudo ok:
$ ruby -ropenssl -rzlib -rreadline -e "puts :'Ola Mundo'";
Ola Mundo
Pronto. Agora só falta instalar o RubyGems para o básico do Ruby estar presente em seu Ubuntu. Para isso vamos executar o comando:
$ sudo apt-get install rubygems
Após instalado, então também vamos ver se está ok. Eu sempre executo o comando com o parâmetro solicitando a versão:
$ gem -v
1.3.5
Tudo funcionando… o próximo passo é conhecer e entender como funciona o Ruby on Rails.
15 dias on Rails
Básico do Ruby on Rails
Posted in 5584 Tagged: apt-get, howto, ruby, ruby on rails, rubygems, tutorial, ubuntu













