domingo, 22 de fevereiro de 2009

Como instalar o Mongrel

Uma dica rápida para quem, assim como eu, está começando em Ruby on Rails.

Mongrel é um rápido e simples servidor web para aplicações Rails, para instalá-lo e utilizá-lo em seus aplicativos, siga os passos a seguir:

Instalação:

$ sudo gem install mongrel

Iniciando o servidor:

Acesse o diretório de sua aplicação, por exemplo:

$ cd meuprojeto

Inicialize o servidor:

$ mongrel_rails start -d

Para finalizá-lo utilize:

$ mongrel_rails stop

Se precisar reiniciá-lo:

$ mongrel_rails restart

Mongrel é um servidor muito mais rápido que o WEBrick (o servidor que vem instalado por padrão junto ao Ruby on Rails) e é tão simples de usar quanto.

Espero ter ajudado com a dica, abraços e até a próxima!

Links relacionados:

sábado, 21 de fevereiro de 2009

Upload de imagens no Rails com Paperclip

Hoje vou escrever um tutorial sobre como fazer upload e redimensionamento de imagens no Ruby on Rails (RoR) utilizando o plug-in Paperclip.

O Paperclip é um plug-in muito simples de usar, estou utilizando ele em um projeto pessoal e é meu favorito para esse tipo de tarefa.

Vou ensinar como usá-lo dando um exemplo prático. Vamos criar um projeto que tem uma classe user (usuário) com os campos name (nome) e picture (fotografia).

Vamos criar uma tela de cadastro de usuários e uma tela que liste os usuários cadastrados, para podermos ver o Paperclip em ação.

Criando o projeto.

Para começar vamos criar nosso projeto, para isso vá para o seu diretório de projetos e digite o comando:

$ rails example --database=mysql

O nome do meu projeto é example e estou utilizando banco de dados mysql. Se você quiser utilizar outro nome ou banco de dados fique à vontade.

Estou utilizando nome de variáveis em inglês pois recentemente comecei a seguir a recomendação que o Carlos Brando fez no post Rails Way #3: Nomes de métodos e variáveis devem ser óbvios, recomendo a leitura.

Configurando o banco de dados.

Agora que o nosso projeto está criado vamos configurar o banco de dados, para isso abra o arquivo que está em config/database.yml com seu editor de textos.

Escreva a senha de seu banco de dados nos respectivos lugares para os bancos development, test e production.

Ficará similar à figura abaixo (a senha do meu banco de dados é root):



Instalando o plug-in Paperclip.

Agora vamos instalar o plugin do Paperclip em nosso projeto. Digite, no diretório do projeto, o comando:

$ script/plugin install git://github.com/thoughtbot/paperclip.git

Ps. Você precisará ter o git instalado para executar esse comando, se você ainda não tem confira o post Instalar GIT no Ubuntu.

Criando o model user.

Agora vamos criar a classe user.

Como dito anterirmente, nossa classe terá os campos name e picture, que será o campo que amazenará a fotografia do usuário.

Para que o paperclip funcione, ao invéz de criar os campo picture no model, criaremos os seguintes campos:
  • picture_file_name (string)
  • picture_content_type (string)
  • picture_file_size (integer)
  • picture_updated_at (datetime)
Onde picture é o nome que usaremos para se referir a imagem. Portanto se o nome que você escolheu fosse image, por exemplo, os nomes dos campos seriam image_updated_at, image_file_name e por aí vai.

Digite o seguinte comando para criar o model user:

$ script/generate model user name:string picture_file_name:string picture_content_type:string picture_file_size:integer picture_updated_at:datetime

Configurando o campo picture na classe user.

Agora vamos dizer para a classe user que ela tem uma imagem que responde pelo nome de picture.

Para isso abra o arquivo que está em app/model/user.rb e adicione dentro da classe a linha:

has_attached_file :picture, :styles => {:small => "150x150", :large => "550x550"}

Onde small e large são tamanhos que eu defini para que minha imagem tenha. Então quando eu fizer o upload de uma imagem o paperclip salvará, também, uma cópia dela nos tamanhos que eu especifiquei.

Você pode definir mais tamanhos se quiser (ou menos) e os nomes ficam a seu critério.

O arquivo ficará assim (clique na imagem para ampliar):



Criando o banco de dados.

Agora para criar os bancos de dados e a tabela users vamos utilizar o rake.
Digite os comandos:

$ rake db:create:all
$ rake db:migrate


Criando o controller para user.

Agora vamos criar um controller para manipular o model user. Digite o comando:

script/generate controller users

Abra o arquivo gerado (app/controllers/users_controller.rb) e vamos criar as actions index, new e create. Por enquanto vamos deixá-las em branco, ficará assim:



A action index listará os usuários cadastrados, a action new carregará o formulário de cadastro e a create criará o usuário digitado no formulário.

Criando o formulário de cadastro.

Vamos criar a view para o formulário de cadastro, crie o arquivo app/views/new.html.erb

Dentro dele crie o formulário de cadastro, veja o meu de exemplo (clique: na imagem para ampliá-la):



Lembrando que todo formulário que possui um campo file_field precisa ter o parâmetro :html => { :multipart => true } para funcionar. Senão o navegador não irá transferir o arquivo.

Criando a action create.

Agora vamos criar a action que cadastrará os dados do formulário, a action create.

Ela ficará assim (app/controllers/users_controller.rb):



Essa action recebe os dados do formulário, cria um objeto do tipo user com esses dados e o salva no banco de dados. Se o procedimento deu certo ela vai para o index, que listará os usuários cadastrados, senão ela retorna para a página de cadastro.

Criando a view para o index.

Agora que nosso projeto já cadastra usuários, vamos criar a view index para listá-los.

Primeiramente faça com que a action index do controller users carregue uma variável com os usuários cadastrados, para isso (app/controllers/users_controller.rb):



Agora, para criar a view, crie o arquivo app/view/users/index.html.erb

Veja o meu de exemplo (clique na imagem para ampliá-la):



Para exibir a imagem eu usei:

<%= image_tag u.picture.url(:small) %>

Onde u é o nome do objeto, picture é nosso campo de imagem, url retorna o endereço da imagem e :small é o tramanho que eu defini anteriormente.

Para esse exemplo os seguintes códigos também funcionariam:

<%= image_tag u.picture.url() %>
<%= image_tag u.picture.url(:small) %>
<%= image_tag u.picture.url(:large) %>


Concluindo.

Agora já temos nosso sistema funcionando com upload e redimensionamento de imagens atravéz do plugin Paperclip.

Digite:

$ script/server

para iniciar o servidor e acesse: http://localhost:3000/users

Resumindo.

Vou resumir o que se deve fazer para trabalhar com Paperclip:
  • Instalar o plug-in em seu projeto.
  • Criar os campos em sua model / tabela: sua_imagem_file_name (string), sua_imagem_content_type (string), sua_imagem_file_size (integer), sua_imagem_updated_at (datetime).
  • Definir, em seu model a propriedade has_attached_file com o nome do seu campo e estilos, se necessário.
  • Utilizar um formulário de cadastro com parâmetro multipart=>true e o campo tipo file_field.
  • Para exibir, utilizar o método url do campo de imagem passando por parâmetro o tamanho da imagem que foi previamente definido.
Bom pessoal espero que tenham gostado do post, qualquer dúvida postem um comentário ou me mandem um e-mail (está escrito no meu perfil do blog).

Abraços e até o próximo post!

segunda-feira, 16 de fevereiro de 2009

Ruby Inside Brasil

Vou fazer um post rápido antes de dormir para ajudar a divulgar uma iniciativa muito interessante que acabo de ler no blog do Carlos Brando (Nome do jogo).

Ele informa em seu post o lançamento de um novo canal de comunicação para a comunidade Rails brasileira que trará informações sobre as novidades do mundo Rails. Tanto as informações originais do Ruby Inside traduzidas para o português quanto artigos de desenvolvedores brasileiros sobre o tema.

Fiquem com o link, assinem o feed e bom proveito!

sexta-feira, 13 de fevereiro de 2009

Ruby + Rails no mundo Real 2009



Dia 04 de abril acontecerá o Ruby + Rails no mundo Real 2009 em São Paulo, será um evento bem interessante para os amantes do Rails.

Direto do site Guru-SP:

O primeiro grande evento das comunidades Guru-SP e Rails-BR apresentará algumas das mais importantes personalidades nacionais desse mercado com projetos e experiências reais.

O seminário falará sobre temas do dia a dia, como controle de versão, testes, treinamentos, servidores de aplicação e mercado de trabalho (tanto interno como externo).

Este evento também contará com a presença da equipe técnica da Sun Microsystems, apresentando como utilizar o servidor de aplicações GlassFish em aplicações Rails.

É um evento imperdível pra quem trabalha com desenvolvimento de software e quer conhecer mais sobre a plataforma de software que está mudando rapidamente o mundo.

Para saber mais detalhes sobre o evento visite a página do mesmo em Ruby e Rails no mundo real - primeira edição

Programação do evento:
  • 08:30 as 09:00: Credenciamento
  • 09:00 as 09:15: Abertura do evento (Marcelo Castellani)
  • 09:15 as 10:30: Criando um Instant Messenger usando Rails (Vinícius Baggio)
  • 10:30 as 10:45: Ruby, Rails e empreendedorismo (Hugo Borges)
  • 10:45 as 11:00: Coffee break
  • 11:00 as 12:00: Fabio Kung - a definir
  • 12:00 as 13:00: Almoço
  • 13:00 as 14:00: Outsorcing, ou como trabalhar para empresas gringas (Caffo)
  • 14:00 as 15:00: GlassFish on Rails: Escalabilidade e Confiabilidade (Maurício Leal)
  • 15:00 as 15:45: Testes em Ruby e Rails (Carlos Brando)
  • 15:45 as 16:00: Coffee break
  • 16:00 as 16:15: O que é e como funciona o RubyLearning (Willian Molinari)
  • 16:15 as 17:15: Utilizando Gitorious nos seus projetos (Fábio Akita)
  • 17:15 as 17:45: Desconferência
  • 17:45 as 18:00: Encerramento
Faça sua inscrição no endereço http://www.temporealeventos.com.br/?area=130

O local do evento será R. Teixeira da Silva, 647 - Paraíso - São Paulo - SP (Century Flat Paulista).

Eu irei com certeza, já estou com a minha inscrição feita.

Abraços, até o próximo post!

quarta-feira, 11 de fevereiro de 2009

Configurar teclado modelo americano para o alfabeto brasileiro no Ubuntu

Hoje vou fazer um post rápido para falar sobre algo que me ajudou muito essa semana.

Comprei um laptop recentemente que possui o teclado com layout americano, suas teclas por padrão não trabalham com acentuação. Isso já estava me deixando louco quando ontem, no site do Viva o Linux, eu li uma dica ensinando como fazer isso.

A dica é do Eddie Hsu e o endereço original é http://www.vivaolinux.com.br/dica/Configurando-teclado-com-layout-americano-para-funcionar-simbolos-do-alfabeto-brasileiro/

Resumindo ela, para configurar faça o seguinte:

1) Vá em Sistema -> Preferências -> Teclado.

2) Acesse a aba "Disposições".

3) Selecione o modelo de seu teclado no item correspondente (o meu é Pc (Intl) Genérico de 105 teclas).

4) Em "Disposições selecionadas" selecione "EUA Internacional (com teclas acentuáveis)".

Pronto, está feito!

Ps. Se você deseja configurar esse teclado no Windows, o nome dele lá é "English (United States) - United States - International"

domingo, 8 de fevereiro de 2009

Editores de texto para Ruby on Rails no Linux - gedit e Emacs

Hoje vou falar a respeito de dois editores de texto que, com algumas modificações, possibilitam um ambiente de desenvolvimento excelente em Rails no Linux, não sendo necessário o uso de IDEs como Netbeans ou Aptana RadRails. São eles o gedit e o Emacs.

Ruby on Rails é um framework onde tudo pode ser feito atravéz de linha de comando, sendo assim eu defendo a ideia de que você não precisa de mais do que um bom editor de textos para desenvolver em Rails.

Quando eu comecei a tentar fazer uns projetos com Rails eu estava utilizando o jEdit (editor que eu uso bastante para php), mas não estava totalmente satisfeito com a produtividade. Sempre ouvi falar do Textmate para Mac OS X, mas ainda não estou disposto a trocar de sistema operacional nem de computador.

Vou ensinar a vocês como instalar os editores que eu mencionei e falar um pouco a respeito deles.

Primeira opção: gEdit + gmate

O gedit é o editor de textos padrão do Gnome, se você usa uma distribuição Linux com ambiente gráfico Gnome então você provavelmente já tem ele instalado.

Vamos fazer algumas modificações nele para ele ficar mais adaptado ao Rails.

Primeiramente vamos instalar o pacote de suporte a plugins, caso ainda não esteja instalado. Utilize o comando:

$ sudo apt-get install gedit-plugins

Outra coisa importante para se programar num editor é o recurso "recuo automático". Ele faz com que, quando você estiver usando tabulações ou espaços para indentar seu texto e for para a próxima linha, o editor adicione automaticamente a indentação.

Para ativar essa opção abra o gedit e vá em:

Editar -> Preferências -> Editor

E marque a opção:

Habilitar recuo automático.

Agora vamos instalar o gmate, que é um conjunto de plugins selecionados pelo Alexandre da Silva para adaptar o gedit ao desenvolvimento de aplicações, principalmente em Rails. Para isso siga as etapas a seguir:

1 - Se você está utilizando Ubuntu instale os seguintes programas no console do Linux:

$ sudo apt-get install python-webkitgtk
$ sudo apt-get install python-pyinotify


2 - Ainda no console do Linux vá para sua pasta pessoal (/home/seu_nome, geralmente o console já abre nessa pasta).

3 - Digite o comando para clonar o arquivo:

$ git clone git://github.com/lexrupy/gmate.git

Ps. para isso você precisará ter o GIT instalado. Se você ainda não tem de uma olhada no post http://brunograsselli.com.br/2009/02/instalar-git-no-ubuntu.html

4 - Entre na pasta que ele criou:

$ cd gmate

5 - Digite o comando para sua instalação:

$ sh install.sh

Agora seu gedit já está com uma série de plug-ins instalados para o desenvolvimento Rails.

Um que é muito útil é o Painel do navegador de arquivos (Editar -> Preferências -> Plug-ins).
Ele exibe a árvore dos arquivos que estão em um determinado diretório (como o diretório do seu projeto, por exemplo).

Para exibí-lo basta ativá-lo na parte de plug-ins:

Editar -> Preferências -> Plug-ins

e ativar sua exibição em:

Ver -> Painel lateral

Com isso e os demais plug-ins você terá uma série de ferramentas a sua disposição.

Agora vamos a nossa segunda opção:

Segunda opção: Emacs + emacs-rails

O Emacs é um ótimo editor para Rails também. Ainda estou aprendendo como utilizá-lo mas ele já me surpreendeu com o pouco que eu vi.

Para instalá-lo você pode efetuar o download em http://www.gnu.org/software/emacs/

Caso você esteja utilizando um distribuição originada do Debian (exemplo: Ubuntu) você não precisa fazer o download, pode instalar a partir do comando:

$ sudo apt-get install emacs

Após instalá-lo vamos instalar o conjunto de plug-ins emacs-rails criado por Thiago Pradi, Ramon Soares e Marcos Zimmermann, para isso siga as etapas:

1 - Abra o console do Linux e vá para sua pasta pessoal (/home/seu_nome, geralmente o console já abre nessa pasta).

2 - Digite o comando para clonar o arquivo:

$ git clone git://github.com/tchandy/emacs-rails.git

3 - Entre na pasta que ele criou:

$ cd emacs-rails

4 - Digite o comando para sua instalação:

$ cp -r .emacs* ~

Pronto, agora você já tem o emacs adaptado para Ruby on Rails.

Para abrir o mesmo painel de navegação de arquivos que eu comentei no gedit no Emacs basta ir em:

Options -> Show/Hide -> Speedbar

Gostaria de agradecer ao nofxx, Fu e Patrick Spake da comunidade Ruby on Br, foram eles que me deram as dicas dos editores e me ensinaram como instalá-los.

Espero ter ajudado com o post, até o próximo!

Links relacionados:

quarta-feira, 4 de fevereiro de 2009

How to Install GIT on Ubuntu (in English)

From today I'll start to post some topics translated to English, to help more users.

Forgive my English, it isn't perfect but I hope it will do.

Today I'll make a quick post about how to install GIT on Ubuntu.
GIT is a software to handle and delivery versions of projects, it was made by Linus Torvalds for the Kernel's project and, nowadays, it is used for many other projects, such as Ruby on Rails.

When I posted about how to install Rails on Ubuntu I didn't mention GIT, but you'll realize that is very useful to have it installed because there are many plugins for Rails stored on GIT repositories.

To install it is very simple, you only have to use this command:

$ sudo apt-get install git-core git-doc git-svn git-gui gitk

In your journey in Ruby on Rails' world you will find many plugins that needs GIT for their installation, but it won't be a problem anymore.

See you!

Related links:
Other languages:

Instalar GIT no Ubuntu

Hoje vou fazer um post rápido para ensinar como instalar o GIT no Ubuntu.
O GIT é um software para gerenciamento de versões de projetos, foi criado pelo Linus Torvalds para o projeto do Kernel do Linux e, hoje em dia, é utilizado por uma série de outros projetos, entre eles o Ruby on Rails.

Quando eu bloguei há uns dias atrás sobre a instalação do Rails no Ubuntu eu não comentei sobre o GIT, mas você vai perceber que é muito útil ter ele instalado pois existem muitos plugins para Rails que estão armazenados em repositórios GIT.

Para instalá-lo é bem simples, basta utilizar o comando:

$ sudo apt-get install git-core git-doc git-svn git-gui gitk

Ao longo de sua jornada pelo mundo Ruby on Rails você irá se deparar com vários plugins que necessitam do GIT para sua instalação, mas agora isso não é mais um problema.

Até o próximo post!

Links relacionados:
Outros idiomas:

domingo, 1 de fevereiro de 2009

Configurar banda larga 3G no Ubuntu 8.10

Recentemente comecei a utilizar o serviço de banda larga da Claro 3G no meu laptop. Me surpreendi com a facilidade de configuração desse tipo de conexão no Ubuntu 8.10 Intrepid Ibex (digo isso pois tinha pesquisado a respeito da instalação em outras versões do Ubuntu e parecia um pouco trabalhoso).

Para configurar inicie o Ubuntu com o modem conectado à porta USB. Para verificar se o Ubuntu detectou o modem você pode utilizar o comando:

$ lsusb

Após iniciar o sistema clique sobre o ícone de conexão de rede que fica próximo ao relógio e selecione o item "configurar".

Abrirá uma janela e, após clicar em "Frente", te dará opções de país e operadora, basta selecionar a operadora desejada.

De um nome à sua conexão e conclua o processo.

Após isso a internet já deve estar funcionando! Para conectar basta clicar no item de conexão de rede novamente e selecionar o item da conexão que acaba de ser configurada.

Em alguns casos ocorre de ele estar conectado mas mesmo assim o Firefox não exibir as páginas. Isso aconteceu no meu caso. Para solucionar utilize o comando abaixo:

$ sudo gedit /etc/ppp/options

Esse comando abrirá um arquivo texto pelo gedit. No final desse arquivo adicione a linha:

ipcp-max-failure 30

Salve o arquivo e reinicie o micro, agora deve funcionar (no meu micro funcionou dessa forma, eu utilizo um modem Huawei E226).

Até a próxima pessoal!