themeless

13/08/2009

Configurando ambiente JRuby on Rails + SQLite3 no Windows

Arquivado em: jruby, ruby on rails — tnaires @ 01:24

JRuby é uma implementação da linguagem Ruby escrita 100% em Java que oferece total suporte a Ruby on Rails. O objetivo deste tutorial é configurar um ambiente de desenvolvimento Ruby on Rails no Windows utilizando JRuby e o banco de dados SQLite3. Apesar de ter sido escrito especificamente para Windows, ele pode ser facilmente adaptado para outras plataformas.

No momento da publicação deste tutorial as versões das tecnologias envolvidas eram:

  • Java – JDK 6 update 14
  • JRuby – 1.3.1
  • Ruby on Rails – 2.3.3
  • SQLite3 – 3.6.17

Vamos lá:

Passo 1 – baixe o JDK diretamente do site da Sun e instale-o conforme recomendado, criando a variável de ambiente JAVA_HOME que aponta para o diretório de instalação e adicionando o caminho %JAVA_HOME%\bin ao PATH.

Passo 2 – baixe o JRuby clicando no link Download e selecionando a versão mais atual. Descompacte o arquivo em um local de sua preferência. Crie uma variável de ambiente JRUBY_HOME que aponta para esse local e adicione o caminho %JRUBY_HOME%\bin ao PATH.

Passo 3 – Entre no site do SQLite3 e clique no link Download. Na seção “Precompiled Binaries for Windows” baixe os arquivos sqlite-<VERSÃO>.zip e sqlitedll-<VERSÃO>.zip (conforme dito anteriormente, a versão contemporânea a este tutorial é a 3.6.17). Crie um diretório no local de sua preferência denominado sqlite3. Descompacte os arquivos .zip baixados dentro desse diretório e configure a variável PATH para apontar para ele.

Passo 4 – Vamos testar o que instalamos até agora. Abra um prompt de comando e digite:

jruby -v

A versão do JRuby instalada no seu computador deve aparecer na tela. Digite agora a linha:

sqlite3

O SQLite3 será executado e ficará aguardando a entrada de comandos de administração. Digite “.exit” sem as aspas para sair do SQLite3.

Passo 5 – Vamos agora instalar o Rails. Abra o prompt de comando, digite a linha:

jruby -S gem install rails

e aguarde até o final da instalação. Quando ela terminar, digite:

jruby -S rails -v

para visualizar a versão do Rails instalada.

OBS: o parâmetro -S força o JRuby a procurar o script dentro da pasta “bin” ou na variável de sistema PATH.

Passo 6 – Precisamos instalar também o driver do SQLite3 para o JRuby. Isso pode ser feito digitando a seguinte linha no prompt de comando e pressionando ENTER:

jruby -S gem install activerecord-jdbcsqlite3-adapter

Lembrando de aplicar as configurações de proxy conforme visto anteriormente, caso necessário.

Passo 7 – Finalmente, criaremos uma aplicação de exemplo para testarmos o ambiente. Navegue pelo prompt de comando até o diretório onde você mantém suas aplicações e digite:

jruby -S rails teste

Edite o arquivo “config\database.yml” com a ajuda de um editor de textos. Na configuração do ambiente de desenvolvimento, altere o valor da propriedade “adapter” para “jdbcsqlite3″.

Entre no diretório “teste” e digite a seguinte linha para criar um cadastro de pessoas:

jruby script/generate scaffold Person name:string phone:string

Crie o banco de dados:

rake db:migrate

Inicie o servidor:

jruby script/server

E acesse o endereço “http://localhost:3000/people”. Se tudo deu certo, você verá a página que mostra as pessoas cadastradas no sistema.

IMPORTANTE: se a rede onde está seu computador possui configuração de proxy, é preciso passar essa configuração através do parâmetro -p do comando gem usando a seguinte sintaxe:

-p http://usuario:senha@servidorproxy:porta

Isso deve ser feito para todos os comandos de instalação de gems que foram vistos nesse tutorial. Use o seguinte exemplo como referência:

jruby -S gem install rails -p http://tarso:123@meu.proxy.com.br:4321

Quaisquer dúvidas e/ou correções, favor postar nos comentários. Até mais!

12/08/2009

Oxente Rails – Dia 2

Arquivado em: oxenterails, ruby, ruby on rails — tnaires @ 00:20

Antes de prosseguir, leia: http://cabritin.wordpress.com/2009/08/11/oxente-rails-dia-1/

Após um surpreendente primeiro dia, era difícil de imaginar que o segundo seria ainda mais empolgante.

Palestras

Ao contrário do primeiro post, não vou citar as palestras na ordem em que ocorreram porque já não me lembro direito :-) Quero agradecer ao meu amigo Jean por ter me deixado usar seu MacBook para fazer alguns tweets durante o dia, valeu Jean!

As boas vindas começaram com cerca de uma hora de atraso, talvez consequência da comemoração do dia anterior. O primeiro palestrante mostrou como seu site desenvolvido em Ruby on Rails pode ser integrado ao PagSeguro, um sistema de pagamento on-line que foi inclusive utilizado pelos organizadores do evento para processar os pagamentos dos participantes.

A partir daqui as palestras não seguiram mais o roteiro original. Não ficaram claros os motivos, e no final das contas ninguém se importou, porque os organizadores conseguiram lidar com o imprevisto com maestria e aplicaram a essência da metodologia ágil para reorganizar o roteiro e criar novas atividades!

Durante a manhã o Tapajós e o Mergulhão realizaram mais uma “pair presentation” que estava originalmente programada para a sexta, cujo objetivo era mostrar um cenário real de escalabilidade de um sistema Rails – o RedeParede, um sistema de classificados on-line – para mandar para a cucuia de uma vez por todas esse boato de que Rails não escala, que já se tornou um mantra repetido por aqueles que ainda mantém o ceticismo em relação à tecnologia.

Devido à controvérsia Twitter, já tinha chegado a pensar que não era fácil escalar um sistema desenvolvido em Rails. Porém os palestrantes mostraram que não é tão diferente de escalar um software escrito em outra plataforma. Provaram por A + B que é totalmente viável. Tive também a oportunidade de tirar uma dúvida com eles sobre a implementação Ruby que eles usavam pra rodar os application servers.

O Dante Régis realizou a sua palestra mostrando formas de efetuar deploy de aplicações Rails, ilustrando através do seu dia a dia no Tribunal de Justiça de Sergipe, onde ele trabalha. Sua participação na adoção de Ruby on Rails na instituição deve servir como exemplo de que é possível usar a tecnologia em locais com muita formalidade e burocracia.

Tarde

No sábado decidi não almoçar no local do evento, pois percebi que uma galera ia almoçar no Midway e eu não queria perder a oportunidade de me entrosar com o pessoal. Dos palestrantes, consegui conversar um pouco com o Mergulhão e devo dizer que me surpreendi com sua simplicidade. Consegui fazer amizade com outros participantes também.

Não lembro direito a ordem como as coisas aconteceram durante a tarde, então desculpem se estou citando os eventos fora da sequência. Só sei que a primeira palestra foi um vídeo de Geoffrey Grosenbach sobre seus três anos de Peep Code. Não assimilei absolutamente nada pelo mesmo motivo do dia anterior: bucho cheio. Dessa vez agravado pelo fato da palestra ser em inglês e meu aparelhinho para acompanhar a tradução estar com mal contato no fone de ouvido.

Jogo de comunicação

O primeiro ponto alto da tarde foi o jogo de comunicação organizado pelos palestrantes e trazido para o evento por Tapajós e outros. O público foi dividido em duas equipes, cada uma subdividida em dois grupos que chamarei de A e B. Na primeira rodada, o grupo A de cada equipe tomou posse de dois desenhos e ficou com a responsabilidade de passar dicas sobre os mesmos para o grupo B através de pequenos papéis escritos; este deveria tentar reproduzí-los baseando-se unicamente nas descrições, sem qualquer outra forma de comunicação.

Ao final da primeira rodada os resultados finais foram apresentados, e o esperado aconteceu: a reprodução ficou bastante distorcida em relação ao original. Então os organizadores do jogo aplicaram algumas práticas de agilidade e instituiram que cada equipe deveria analisar as causas que acarretaram na distorção e corrigí-las. Uma vez levantados os pontos falhos – e enumeradas as sugestões para lidar com eles – era hora de iniciar a segunda rodada, mas dessa vez os papéis dos grupos foram trocados: o grupo B tomou posse dos desenhos enquanto o grupo A ficou de tentar reproduzí-los. Dessa vez uma das equipes, a que estava situada no auditório, mostrou sua capacidade de autocorreção e conseguiu confeccionar uma reprodução bastante fiel à original. Já o desempenho nessa etapa da equipe que ficou no palco foi pior do que na primeira…

E adivinham em qual equipe eu estava? A do palco :-) Tivemos que usar chapéu de palhaço durante toda a palestra que se seguiu hehe.

Mas tudo bem, eu estava muito feliz por ter participado da experiência – e também por ter sido sorteado com um livro de REST sobre Rails! :-D

Etapa final

Após um rápido coffe-break, tivemos o segundo ponto alto da tarde: uma “mesa redonda” com os palestrantes, onde todos eles foram colocados diante do público do evento para uma conversa frente a frente sobre temas relacionados – ou não – ao evento e ao mundo Rails. Muito interessante o fato de que todos eles se sentaram à frente do palco, fazendo-nos esquecer a hierarquia palestrante-espectador e trazendo um tom de informalidade. As perguntas eram realizadas pelo microfone ou via Twitter – a página do Twitter do evento foi exibida no telão e os participantes podiam interagir em tempo real.

A penúltima palestra foi uma das que eu mais estava esperando. Paulo Fagiani falou um pouco sobre JRuby e toda a integração Java-Ruby que a implementação proporciona. Eu como desenvolvedor Java particularmente estudo Rails em casa rodando tudo sobre o JRuby e deployando nos servidores de aplicação disponíveis para a plataforma Java.

E a última palestra seguiu um modelo mais informal mas não menos agradável. Jon Larkowski apresentou-nos seu dia a dia como desenvolvedor da Hashrocket num tom bastante irreverente. Ele dissecou o manifesto ágil categorizando as práticas do XP de acordo com a semântica de cada linha e mostrou o “Hashrocket way” de fazer as coisas :-) Foi a única palestra internacional que consegui acompanhar sem o aparelhinho que transmitia a tradução. Pudemos também ver algumas fotos do ambiente de trabalho e de sua estadia na Cidade do Sol.

O evento novamente esticou para um Hora Extra. Eu novamente não fui. Shame on me :P

Considerações finais

O evento foi um sucesso. Simples assim. A comunidade Rails natalense mostrou sua força. Parabéns aos organizadores pela qualidade ímpar do evento, parabéns aos palestrantes pelo alto nível. E claro, parabéns a nós participantes pois “sem nosco” não haveria evento :-)

Até o próximo Oxente Rails!

11/08/2009

Oxente Rails – Dia 1

Arquivado em: oxenterails, ruby, ruby on rails — tnaires @ 00:45

Eu vinha notando que há alguns meses atrás uma comunidade Ruby on Rails aqui em Natal estava ganhando força. Minhas suspeitas se confirmaram: o Oxente Rails, um excelente evento sobre o framework do momento Ruby on Rails, foi realizado no IFRN – antigo CEFET – neste último fim de semana, dias 07 e 08 de agosto. Não lembro agora como soube do evento, mas entrei no site e me surpreendi tanto com as empresas que estavam apoiando quanto com a lista de palestrantes, que incluía nomes como Yehuda Katz, Fábio Akita, Marcos Tapajós e Carlos Brando.

De cara percebi que o evento seria muito bom, e como pra mim sempre foi muito difícil ir a eventos como o Rails Summit, então concluí que não poderia deixar de presenciar este.

Uma coisa que me deu má impressão no início foi durante a inscrição. Quando imprimi o boleto via PagSeguro e efetuei o pagamento, fiquei aguardando um e-mail de confirmação de inscrição que só veio na véspera do evento. Mas sem problema, preenchi o formulário de contato do site e não demorou para o Elomar França – um dos organizadores – me responder via e-mail que bastaria eu comparecer no dia do evento para credenciamento.

Palestras – 1ª etapa

Passado algum tempo, chegou o primeiro dia. Recebimento de crachá, materiais, realização de boas vindas… E então começou a primeira palestra, ministrada pelo renomado evangelista Rails Fábio Akita. Uma apresentação excelente, dinâmica e com bastante informação sobre o mundo Rails, tanto que é provável que algumas pessoas não tenham assimilado tanta informação em tão pouco tempo – eu fui uma delas.

Então começou a segunda palestra, uma interessantíssima e irreverente apresentação feira pelo railer e aspirante a mágico Carlos Brando. Ele palestrou sobre Ruby e a mágica por trás da metaprogramação. Infelizmente quem não tinha um pouco de noção da linguagem acabou voando. Depois tivemos um pouco de BDD na prática através da apresentação do instrutor da Caleum Cauê Guerra – inclusive vi um tweet do Fábio Kung dizendo que ele fez aniversário esse fim de semana, parabéns!

Palestras – 2ª etapa

Pausa para o almoço, com direito a suco e sanduíches. O sono típico de início de tarde provocado pelo bucho cheio prejudicou minha atenção na palestra seguinte: Juarez Filho falou sobre design de interfaces, mas não assimilei absolutamente nada. Depois fomos apresentados pelo professor do IFPI Régis Pires ao Easy Rails, que consiste em uma forma interessante e fácil de usar o Rails em ambientes Windows e Linux.

Então tivemos a primeira grande surpresa do evento: a palestra de desenvolvimento ágil, que seria apresentada no dia seguinte, foi antecipada. Ministrada por Marcos Tapajós e Sylvestre Mergulhão, foi a primeira “pair presentation” que vi. Tive oportunidade de tirar duas dúvidas sobre a adoção de métodos ágeis no lugar onde trabalho com esses monstros da agilidade. Muito obrigado aos palestrantes pelas respostas.

A palestra final era uma das que eu mais esperava: Rails 3, por nada mais nada menos que um dos membros do time de desenvolvimento, Yehuda Katz. Infelizmente, não consegui acompanhar pois não entendo muito inglês de ouvido – apesar de ler fluentemente – e não consegui acompanhar a tradução simultânea. Que pena.

Houve então a seção de desconferência, onde alguns participantes tiveram oportunidade de palestrar sobre temas específicos. E assim encerrou-se o primeiro dia, que esticou para um “hora extra” no bar da Saideira. Eu tive que ir à aula e infelizmente não pude comparecer; hoje estou muito arrependido, pois perdi a oportunidade de conhecer gente nova e engajada na área.

Ao final eu estava em êxtase. O primeiro dia foi, para mim e para muitos, mais do que o esperado. Mas o segundo dia ainda seria melhor… Aguardem resenha em breve! Até mais.

28/03/2008

Curso introdutório gratuito de Ruby On Rails

Arquivado em: ruby on rails — Tags: — tnaires @ 23:57

Deixem-me dar essa notícia antes que eu esqueça novamente :D

Lembram do curso gratuito de Ruby, ministrado pelo indiano Satish Talim? Um amigo dele resolveu seguir a onda, e abriu um curso de Ruby on Rails. Seu nome é Sunil Kelkar. O curso terá início no dia 12 de abril.

Tá esperando o quê? Matricule-se!

Blog no WordPress.com.