Tag Archives: Ruby on Rails

Screencaster Pro: agora uma opção para screencasts pagos

Um acontecimento que para muitos pode ser motivo para torcer o nariz, eu comemoro fazendo um post: o Screencaster agora disponibiliza screencasts pagos! \o/

Basicamente isso significa que:

  1. Maior qualidade no screencast
  2. Mais detalhes sobre o tema explicado
  3. Mais frequência na atualização

Claro que tudo isso é em teoria, pois o produto precisa vender! E acredito que não seja demais pagar R$11,99 por uma aula de qualidade! Isso motivará o autor a fazer sempre mais! Aproveite a promoção de lançamento e adquira a aula “Ruby on Rails – Criando sistema de votação: Workflow completo” por apenas R$5,99. http://www.screencaster.com.br/

Parabéns Rambo!!!

Clique para acessar o site

Java? Jaaaaava? Jaaaaaavaaaaaaaaaa!!!

Um camaradinha meu veio me perguntar se eu considerava importante investir no aprendizado de Java. Como adoro dar meus pitacos, falei para ele minha opinião e aproveitei para estendê-la (sim, minha opinião É orientada a objetos =D) a você, fiel leitor.

Sim, considero muito importante saber Java, mas não essencial. Vamos analisar as 3 situações apresentadas abaixo:

  • Você quer trabalhar para uma grande corporação – neste caso, quanto mais Java você souber, maior será seu salário. Em SP gurus de Java são disputados a tapa pelas empresas recrutadoras. Hoje mesmo ouvi dizer que na Europa existe uma boa demanda por profissionais Java e não tenho dúvidas que nos EUA também haja. A linguagem em questão é robusta, direcionada a aplicações de grande porte e já nasceu para ser assim, então, é natural que as empresas a adotem como linguagem server-side.
  • Você é bem criativo e tem idéias para fazer um ou mais produtos próprios – num caso como este, eu nem perderia meu tempo em olhar para o Java, pois o que eu preciso é de rapidez, tanto no aprendizado quanto no desenvolvimento. Minha escolha neste caso seria o Ruby on Rails, pois está provado que é a solução mais eficiente para um desenvolvimento rápido e escalonado, com fácil manutenção posterior. Eu olharia com atenção também para o Coldfusion, pois se você sabe Flex já está acostumado com a documentação das tecnologias by Adobe e com isso vai ganhar tempo. Ambas as comunidades de desenvolvedores são muito abrangentes e apaixonadas pela tecnologia.
  • Você quer se tornar um especialista em Flex (EU!!!!) – neste caso não vai ter jeito: você terá que aprender um pouco de tudo e ganhar os projetos como sendo um especialista em Flex. Seu negócio é a interface e sua integração com o backend. Não será fácil, pois a maioria das vagas por aí exige que se seja especialista em tudo (front e backend), o que é um erro. Como o Flex se comunica com qualquer linguagem de desenvolvimento web, é conveniente que se saiba pelo menos um pouco de cada. Digo isso pois a integração do lado Flex, com o RemoteObject é praticamente igual, qualquer que seja a linguagem de servidor escolhida. Mas a camada AMF não. Então, no mínimo dos mínimos deve-se saber que WebORB atende .NET e PHP, alem de Java e RoR; que AMFPHP é exclusivo para PHP, que o Ruby on Rails tem o RubyAMF e assim por diante.

Se você é da turma FLEXível, já começou com o pé direito escolhendo uma das melhores plataformas para desenvolvimento de user interfaces. Já o seu futuro no lado do servidor, vai depender do tipo de trabalho que vc fará no dia-a-dia e acredite: vale a pena planejar sua carreira e focar nela. Eu só entendi isso depois que encontrei o Flex, ao qual dedico meus estudos a quase 2 anos.

Um grande abraço do Ved

Repensando a Web com Rails

Estou com muita fome de conhecer e por em prática novas tecnologias server side. Andei conversando com o Saint que me passou diversos videos e dicas sobre a plataforma .NET e o que eu vi me deixou realmente impressionado. Não é a toa que, apesar de ser uma tecnologia Microsoft, com todas as desvantagens que esse fato traz, tem sido utilizada por grandes empresas.

Outro foco de meus estudos é o Ruby on Rails, que já ensaiei aprender por duas vezes, tendo inclusive feito o curso da Egenial. Desta vez tomei a iniciativa de comprar o livro Repensando a Web com Rails, de Fabio Akita. Foi uma excelente aquisição. São mais de 500 páginas recheadas de história da web, das linguagens de programação e explicações de como o Ruby e o framework Rails se enquadram em tudo isso.

Quanto à didática, é excelente, com exemplos claros e muita explicação. É tanta explicação que quando vc já entendeu o conceito, chega a ficar impaciente. Mas isso mostra claramente que o livro foi escrito para qualquer nível de auto-didatismo (sic). Ali, só não aprende quem não quer!

É fato que a sintaxe da linguagem é completamente diferente de tudo o que eu vi até hoje, porém, o seu poder de automação de tarefas repetitivas fica muito claro, com o bom uso do Convention over configuration (convenção ao invés de configuração). O Active Record é uma das coisas mais inteligentes que eu já vi no mundo da programação.

Enfim, vale muito a pena comprar o livro e lê-lo da capa à contra-capa e depois fazer de novo aplicando os exemplos. É o que estou fazendo.

Grande abraço do Ved

Ruby on Rails: o que vem a ser?

Bem… o nome é bem diferente, é a primeira coisa que notamos. Mas o que exatamente vem a ser o Ruby on Rails, que a partir de agora, para poupar digitação, chamarei apenas de RoR.

RoR é um framework para desenvolvimento de aplicações web, ou seja, websites dinâmicos, que acessam e modificam dados armazenados em bancos de dados. É baseado na linguagem de programação Ruby, desenvolvida no Japão e que vem dando o que falar nas comunidades de programação, principalmente as de Java.

O que torna o RoR tão falado???

Simplicidade no desenvolvimento. Essa é a frase mais utilizada para descrever a coisa. Uma piada que muito circulou no mundo do desenvolvimento a algum tempo foi que um simples arquivo de configuração de Java era maior do que uma aplicação inteira desenvolvida com RoR. No próprio site oficial do framework (ver links ao final…), existe um video explicando como desenvolver um sistema completo de blog em 15 minutos e com apenas 58 linhas de código. Ficou curioso??? Pois bem, eu fiquei…

Tentando entender

O início da curva de aprendizagem de qualquer linguagem de programação não é fácil. É preciso procurar tutoriais pela Internet e, no meu caso, procurar um bom livro que ensine passo-a-passo. Eu adquiri uma publicação da O’Reilly que me pareceu muito boa, de início. Porém, quando recebi o livro e tentei começar, verifiquei que ainda precisava de algumas navegadas pelo bom e velho Google, antes de iniciar a aplicação de teste explicada no livro.

Assim como se sai de um colégio mais simples para um mais avançado, no qual os professores não têm a paciência de explicar coisas que você já deveria saber, o mundo RoR também possui essa característica e não encontrei uma receita de bolo que tratasse a coisa da forma “agora abra janela tal e digite tal coisa”. Assim, até eu entender que depois de instalar no Windows eu deveria abrir o prompt do DOS para iniciar a interação com o framework, demorou umas boas horas, para não dizer dias!

Mas eis que consegui.

Da instalação ao início da programação em 10 minutos

Isso mesmo! O RoR é multiplataforma, o que significa que independente do seu sistema operacional, poderá trabalhar ele. Também acessa diversos bancos de dados, inclusive o temido Oracle. Fiz a instalação no Windows, apesar de ter também uma máquina rodando Linux. O instalador para Windows é o one-click-installer (link no final do post) e instala todo o ambiente Ruby em sua máquina. Escolha qualquer partição de sua máquina para instalar. Pode ser no C, no D:, no E: ou qualquer uma que vc ache mais adequado.

Uma vez instalado, abra a janela do DOS (rs) e digite ruby -v. Você verá a seguinte mensagem:

ruby 1.8.5 (2006-12-25 patchlevel 12) [i386 - mswin32]

Isso significa que o Ruby está instalado e funcionando, mostrando a versão e o seu sistema operacional.

Agora é preciso instalar o Rails, que nada mais é do que um framework que funciona junto com o Ruby. Imagine que o Ruby é um sistema operacional como o Windows e o Rails um software que você instala depois de ter instalado o primeiro, como por exemplo o Word. Não é possível utilizar o Word sem ter o Windows instalado. Esse é o conceito.

O Ruby possui um sistema para instalação de plugins externo semelhante ao apt-get do Linux Debian, ou oYaST do SuSE Linux: basta digitar o que se quer e ele localiza na Web a versão mais recente e automaticamente o instala, sem que você precise se preocupar com mais nada. Essa é a maravilha do software livre: tudo a disposição, sempre nas versões mais estáveis e de graça!

O sistema de instalação mencionado é o GEM, para instalar o Rails com a ajuda deste, basta digitar ruby gem install rails –include-dependencies. Todas as ações tomadas aparecerão na tela e então o Rails estará instalado. Muito simples: em menos de 10 minutos todo o seu ambiente de desenvolvimento está instalado e pronto para ser utilizado, sem o menor sofrimento.

Agora precisamos criar uma aplicação. O RoR trabalha em cima do conceito “padronização ao invés de configuração” o que na prática significa que se você adotar a padronização de nomenclatura de nomes de tabelas em banco de dados e nos objetos, o RoR fará todo o trabalho de configuração e acesso aos dados sozinho, para que sua única preocupação seja o desenvolvimento da aplicação. Nada de fazer trabalho sujo!

Para criarmos nossa primeira aplicação, entendendo que estamos dentro do diretório ruby, digitamos rails NomeDaAplicação, onde NomeDaAplicação é o nome do seu projeto. Será criada uma pasta com este nome dentro da pasta ruby. O resultado será o seguinte:

create
create app/controlle
create app/helpers
create app/models
create app/views/lay
create config/enviro

create doc/README_FO
create log/server.lo
create log/productio
create log/developme
create log/test.log

A lista foi truncada para não ocupar muito espaço aqui. Percebe-se claramente que além de criar a pasta com o nome do seu aplicativo, que aqui chamei de blog, criou dentro dela várias outras pastas que manterão toda a sua programação organizada, mantendo sempre a mesma estrutura para todos os seus projetos subsequentes.

Aqui criamos o ambiente de desenvolvimento. Está na hora de ver o RoR em ação!

Iniciando o web server

O RoR funciona com vários servidores web, como Apache, por exemplo. Porém, ele já vem com seu próprio servidor web, que é chamado de WEBrick. Para iniciá-lo, digite:

cd blog #este comando o leva para dentro da pasta do projeto
ruby script/server # Este comando starta o servidor para este projeto.

É importante dizer que quando estamos trabalhando no Windows, é necessário digitar a palavra ruby antes de chamar os comandos, o que não acontece no Linux.

Feito isso, o servidor Web está rodando e pode ser acessadovia Browser. A resposta no prompt de comando é a seguinte:

=> Booting WEBrick…
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with –help for options
[2007-02-11 17:34:05] INFO WEBrick 1.3.1
[2007-02-11 17:34:05] INFO ruby 1.8.5 (2006-12-25) [i386-mswin32]
[2007-02-11 17:34:05] INFO WEBrick::HTTPServer#start: pid=3448 port=3000

Para vermos o resultado, basta abrir o seu browser e digitar: localhost:3000 para visualizar a seguinte tela:

RoR Webrick

Caso você receba uma tela de erro 404, tente verificar se o seu firewall não tá bloqueando o acesso à porta 3000.

Tá, e agora???

Bem… percebeu o quanto tudo foi muito simples e rápido??? Mas não pense que por este fato o RoR não é poderoso. Ainda estou estudando e comendo grama, mas o pouco que já pude verificar, é realmente uma plataforma de desenvolvimento fantástica, que não fica nada a dever a outras mais antigas e comumente utilizadas.

Vamos então mexer com nossa aplicação, criando um controle e um view.

Abra uma nova janela do DOS, pois a que estava aberta agora está ocupada pelo servidor Web. Vá até a pasta de seu projeto, que provavelmente será c:/ruby/blog. Digite em seguida ruby script/generate controller home, onde script/generate é o comando Ruby para criação de um novo script, controller é o tipo de script gerado e home o nome do controller. O retorno será o seguinte:

exists app/controllers/
exists app/helpers/
create app/views/home
exists test/functional/
create app/controllers/home_contro
create test/functional/home_contro
create app/helpers/home_helper.rb

Perceba que ele verifica a existência de algumas pastas e cria novas pastas e arquivos dentro das já existentes. Com isso, ele está ainda montando o ambiente de desenvolvimento, sob demanda. Ao que percebi, quando se utiliza o servidor web nativo do Ruby, as URLs ficam extramente amigáveis, como por exemplo: http://seudominio.com.br/posts/15. Nada de URLs cheias de parâmetros. Mais fácil inclusive para você testar com mais agilidade o resultado de suas alterações. Percebemos que a partir do seudominio.com.br temos o nome das funções dentro do ambiente: posts é o nome do controller, arquivo que gerencia os dados e 15 é o ID do registro.

Vamos agora rapidamente mostrar alguma coisa no Browser, já dentro de sua aplicação. Abra seu editor de textos favoritos (o meu é o UltraEdit mas neste caso estou usando o simpático e providencial Bloco de Notas do Windows). Crie um documento com o conteúdo <%= @ola %> e salve. Procure pela pasta app dentro da pasta blog. Repare que ali estão 4 pastas onde vc colocará a maioria dos seus scripts e modelos. Salve dentro da pasta views > home como index.rhtml.

RoR App

Com isso, criamos um arquivo que será chamado pelo controller home, que por sua vez trocará o @ola pelo conteudo associado à variável contida no arquivo home_controller.rb. Para isso, procure pelo home_controller.rb dentro da pasta controllers em app. Edite-o e encontrará o seguinte:

class HomeController < ApplicationController
end

Modifique acrescentando o que abaixo está em negrito:

class HomeController < ApplicationController
def index
@ola = “Minha primeira aplicação em Rails!”
end

end

Retorne ao browser e aponte para http://localhost:3000/home e sua frase “Minha primeira aplicação em Rails!” aparecerá no browser. Olhando código fonte, verá que apenas a frase aparece, sem nenhuma marcação HTML. Edite seu arquivo index.rhtml em app/views/home e coloque o <%= @ola %> entre tags <h1></h1>. Salve e dê um refresh no browser. Agora sim temos HTML, mas ainda falta coisa.

Perceba que não existem as tags de head que formam um HTML bem escrito. Isso colocamos em outro arquivo rhtml, que será salvo em app/views/layouts/home com o nome de application.rhtml. Faça isso colocando o seguinte conteúdo:

<head><title>Rails rulez!</title></head>
<body>
<%= yield %>
</body>
</html>

Retorne agora ao browser, dê um refresh e veja o código fonte gerado. Perceberá que as tags HTML de estrutura estarão todas lá, com o seu H1 e sua frase contidos entre o body e o /body. Isso significa que o layout é a “casca” do site e que o view é o layout do seu conteúdo. Só nesses poucos passos já se abriram diversas novas possibilidades, não é mesmo??? Layout separado do código sem necessidade de bibliotecas externas!

Vamos, para finalizar, inserir um arquivo CSS para formatar nosso body e nosso elemento H1!

Abra novamente no editor de textos o arquivo application.rhtml que está em app/views/layouts e insira a seguinte linha:

<%= stylesheet_link_tag “default” %>

Crie no próprio bloco de notas do Windows o arquivo default.css e salve em blog/public/stylesheets com o seguinte conteúdo

body{
background-color: #ccc;
}
h1{
color: #c00000;
}

Volte ao browser e dê um refresh! Voilá: uma folha de estilo para controlar a exibição!

Finalizamos por aqui, pois ainda estou estudando! Obviamente que isso é apenas uma introdução ao desenvolvimento com Roby. Tenho certeza que essa linguagem ainda nos trará gratas surpresas conforme formos nos aprofundando.

Qualquer errata, sinta-se à vontade para deixar um comentário informando!

Grande abraço,

Vedovelli

<links>

Apostila em português que estou utilizando para estudos:
http://www.vedsa.com.br/transf/tutorial.pdf

Ruby one-click-installer:
http://rubyforge.org/frs/download.php/12751/ruby185-21.exe

Videos:
http://www.rubyonrails.org/screencasts

</links>