jump to navigation

notas de estudo de Ruby 9/Abr/2008

Posted by Timóteo in Programação, Ruby, tutorial.
Tags: , , ,
add a comment

a partir de hoje, temos uma nova seção: as notas de estudo de Ruby em português. são as notas de Satish Talim, traduzidas (por mim) para nosso idioma, o que torna mais fácil a vida de quem não entende inglês. Comecei hoje, então, ainda não temos muita coisa, mas, à medida que eu for traduzindo, a seção será atualizada. fiquem de olho (essa doeu), estou a todo vapor (ai!) traduzindo o tutorial, que tem mais de 120 páginas e é um ótimo guia de estudos para quem quer entrar no mundo de Ruby.

OBS: colaboradores, fiquem à vontade…

curso de ruby online 8/Abr/2008

Posted by Timóteo in Programação, Ruby.
Tags: , ,
1 comment so far

o programador indiano Satish Talim está oferecendo um curso de Ruby online (já vai na 5ª turma) DE GRAÇA!!! o curso é ministrado via moodle (um sistema usado para cursos à distância – depois escrevo sobre ele).

a duração é de 12 semanas e vai iniciar em 3 de maio. as inscrições ainda estão abertas (até 6 de maio) e qualquer um pode se inscrever. basta ir ao rubylearning.org, fazer o cadastro e enviar um e-mail para o Satish Talim, contendo seu nome e sobrenome cadastrados no site (o assunto deve ter o nome do curso incluso). cerca de um dia depois (ou menos), ele vai enviar uma chave para participar do curso. ao final, o participante recebe um certificado de participação.

antes de iniciar o curso, é recomendável que a gente leia (sim, eu me inscrevi) as notas de estudo disponíveis em rubylearning.com.

como nem tudo é perfeito, tem um pequeno problema, tanto no curso quanto no tutorial: são em inglês!!! o pessoal que souber inglês tem aí uma ótima fonte de aprendizado… pra quem não sabe, tem uma versão em espanhol aqui, traduzido por dois programadores mexicanos.

[EDIT] Já ia esquecendo… pra quem quer conhecer o projeto moodle e como funciona, essa é a página oficial do projeto…

PS: [off] que tal o tema novo do blog???

ruby on rails 2.0 iniciando um projeto 19/Fev/2008

Posted by Timóteo in Programação, Ruby, Software livre.
Tags: , ,
2 comments

Voltando a falar do Rails…..

Vou iniciar de novo um projeto de controle de fluxo de alunos no laboratório, usando como base os tutoriais presentes no Terminally Incoherent e no Akita on Rails. Então, vamos lá:

Depois de instalar o ruby, as gemas e o rails (veja aqui como fazer isso), vamos criar o projeto (Nota: é ainda mais fácil do que com o rails 1.2).

criando o projeto e o banco de dados

1. Não mudou nada em relação a criar o projeto. É só digitar (lembrando que o nome do projeto é relatorio):

rails relatorio

[editado]
para definir o mysql como banco de dados do projeto, pode-se colocar a opção

-d mysql

logo após o nome do projeto. No nosso caso, ficaria assim

rails relatorio -d mysql

[/editado]

2. Agora, sim, mudanças… Editar o arquivo config/database.yml, dentro da pasta do projeto (O Rails mudou o SGBD padrão para o SQLite3, então, vamos ter que modificar realmente o arquivo de definição de banco de dados para usá-lo com MySQL, que agora é da Sun). O meu arquivo ficou assim:

defaults: &defaults

  adapter: mysql

  encoding: utf8

  username: root

  password:

  socket: /var/run/mysqld/mysqld.sockdevelopment:

  database: sits_development

  <<: *defaults

test:

  database: sits_test

  <<: *defaults

production:

  database: sits_production

  <<: *defaults

Uma coisa que eu achei legal foi a parada do “defaults”. Dá pra definir os parâmetros que são iguais para os três bancos e utilizá-los nas outras definições do arquivo, só chamando um “atalho” para a definição dos defaults.

Depois de editado o arquivo de configuração, vamos criar os bancos de dados. Prepare-se, esta é uma etapa muito complicada, que envolve códigos SQL extremamente complexos. Muito cuidado, digite no terminal, dentro da pasta do projeto:

rake db:create:all

Ué, cadê o SQL extremamente complicado? Foi pro espaço (O final do parágrafo anterior foi só pra assustar… :p). Se você estiver duvidando, abra o mysql da forma que desejar e veja que os bancos de dados foram realmente criados.

criando o scaffold e as tabelas

Vamos agora, criar as tabelas para o banco de dados. Aqui, vou criar a tabela de alunos, já que é a mais simples do nosso projeto. Esqueça o SQL, os campos serão criados dentro do script de scaffold, da seguinte forma:

script/generate scaffold Aluno cpf:string nome:string curso:string

Agora, geramos o banco de dados utilizando o comando

rake db:migrate

Se você quiser olhar no mysql, verá que a tabela alunos foi realmente criada. Tudo isso sem uma única linha sequer de SQL. Legal, né?

Criando uma rota para a página principal

Para criar uma rota, é só editar o arquivo config/routes.rb. Por enquanto, vamos definir a página de cadastro de alunos (que já foi criada automaticamente pelo scaffold) como sendo a principal. Precisamos apenas incluir a linha

  map.root :controller => 'alunos'

logo abaixo de

ActionController::Routing::Routes.draw do |map|

Agora, depois de salvar o arquivo, deletamos a página public/index.html (Essa página é aquela que diz “Welcome Aboard”).

Pra ver o resultado, iniciamos o server com o comando

script/server

e verificar a aplicação no endereço localhost:3000 dentro do navegador.

ruby on rails II – começando a diversão 23/Jan/2008

Posted by Timóteo in Desenvolvimento, Programação, Ruby, Software livre.
Tags: , , ,
add a comment

No primeiro post (aqui) de Ruby on Rails, instalamos o Ruby e o Rails. Agora, vamos à diversão.

Para criar o projeto, é só digitar o comando

rails <nome_do_projeto>

Vamos utilizar um exemplo, pra ficar mais claro. Vou fazer um relatório de uso dos PCs aqui no Laboratório da UFPE. Neste post, vou fazer o cadastro de alunos. Instalei o LAMP (Apache+PHP+MySQL no Linux. Aqui tem um tutorial) para usar o MySQL e o phpMyAdmin.

Criando o Banco de Dados

CREATE DATABASE `relatorio`;

Por enquanto, só vamos utilizar a tabela ‘aluno’, então vou criar só ela agora:

CREATE TABLE `alunos` (
    `id` smallint NOT NULL AUTO_INCREMENT,
    `CPF` BIGINT NOT NULL ,
    `Nome` VARCHAR( 50 ) NOT NULL ,
    `Curso` ENUM( 'adm', 'des', 'eco', 'eng', 'ped', 'upe' ) NOT NULL ,
    PRIMARY KEY ( `id` ),
    UNIQUE KEY `CPF_key` ( `CPF` )
) ENGINE = MYISAM ;

OBS: toda tabela deve ter uma chave primária de nome ‘id’, no MySQL o mais fácil é criar isto como ‘numeric auto_increment’.

Criando o projeto:

Vamos chamar o projeto de ‘relatório’. Assim, o código de criação ficaria:

rails relatorio

O rails vai criar uma pasta chamada relatório. Entre na pasta e digite:

script/server

que vai iniciar o servidor WEBrick, embutido no rails. Agora, já podemos digitar no navegador preferido (Firefox) o endereço http://localhost:3000. (sem o ponto =p). Se tudo deu certo, vai aparecer uma página com a mensagem “Welcome Aboard”, dando boas vindas. Note que tem um “link” que informa sobre o ambiente da aplicação. Aqui, estou usando ruby 1.8.6 (linux-i486), Gems 0.9.4 e rails 1.2.4.

Logo abaixo dessas informações, tem uma seção “Getting Started”, que vamos seguir agora.

1. Criar o banco de dados e editar o arquivo config/database.yml:
Já criamos o BD, então é só editar o arquivo. Com o editor de texto de sua preferência (vim), editar a seção development. Fica mais ou menos assim:

development:
   adapter: mysql
   database: relatorio
   username: root
   password:
   socket: /var/run/mysqld/mysqld.sock

2. Gerar os modelos e controladores:
É só utilizar o script generate, na pasta script. São duas linhas de comandos:

script/generate model aluno
script/generate controller aluno

Agora já estão gerados o modelo e o controlador de aluno. Vamos, então, adicionar uma linha no arquivo app/controllers/category_controller.rb, para gerar o scaffold (é esse negócio que vai gerar um CRUD (Create, Refresh, Update, Delete) padronizado – Documentação). O arquivo vai ficar assim:

class AlunoController < ApplicationController
        scaffold :aluno
end

A partir daqui, já é possível acessar o cadastro de alunos a partir do navegador, no endereço http://localhost:3000/aluno (eu precisei reiniciar o servidor WEBrick antes).

Por enquanto é só. Num post futuro, vamos customizar um pouco o cadastro de aluno.

Referências:
urubatan.com.br
API do Ruby on Rails

ruby on rails I – o início 8/Jan/2008

Posted by Timóteo in Desenvolvimento, Programação, Ruby, Software livre.
Tags: , , ,
2 comments

O que é Ruby?

De acordo com o site oficial, Ruby é “uma linguagem de programação dinâmica, open-source com foco em simplicidade e produtividade. Tem uma sintaxe elegante que é natural de ler e fácil de escrever” (tradução livre). Resumindo: é fácil, rápida para desenvolver, poderosa, flexível e que está em pleno crescimento no mundo do desenvolvimento web. Foi criada por Yukihiro Matsumoto e divulgada em 1995. O início do boom se deu com a criação do Rails, um framework para desenvolvimento web em Ruby.

No site http://tryruby.hobix.com tem um tutorial básico e um interpretador online, para quem quiser conhecer a linguagem antes de instalar no PC.

Instalando o Ruby

O processo de instalação é bem simples:

  • No Linux (fiz no Ubuntu 7.10 aqui do Lab): Depois de habilitar o repositório Universe, é só rodar o seguinte comando:
    sudo apt-get install ruby irb rdoc
  • No rWindows:
    1. Baixar o OneClick Installer aqui.
    2. Instalar normalmente.

Agora, as gemas

O Gems é o sistema de pacotes do Ruby. É mais ou menos como o apt-get do Debian. Através dele, pode-se instalar as bibliotecas restantes no Ruby. O processo é “muito complicado” =P

  1. Baixar o arquivo compactado da versão mais recente neste site.
  2. Descompactar.
  3. Na linha de comando, entrar na pasta e digitar, como root:
    ruby setup.rb
  4. Pronto. Agora podemos utilizar o gems para instalar o rails.

Instalando o Rails

O Rails é um framework OpenSource para o desenvolvimento de aplicações web, com bancos de dados, em Ruby. Para instalá-lo, devemos executar a complicada sequência de passos (Um, pra ser mais preciso):

  1. Digite o comando:
    gem install rails --include-dependencies

Nota: Existe um pacote chamado InstantRails, para Windows (clique aqui para baixar), que contém o Ruby, Rails, Apache e MySQL pré-configurados. É baseado no EasyPHP e funciona mais ou menos da mesma forma.

Referências:
urubatan.com.br
ruby-br.org (Ruby Brasil)
ruby-lang.org (Site oficial)
instantrails.rubyforge.org (InstantRails)
rubyforge.org
docs.rubygems.org (Documentação do Ruby Gems)
rubyonrails.org (Ruby on Rails)