Archive for April, 2007

Primeiros passos com Ruby e Ruby on Rails

Monday, April 16th, 2007

Antes de colocar a mão na massa, é bom registrar que questões religiosas que envolvem linguagens e sistemas operacionais serão deixadas de lado neste post e, todas as dicas que vocês encontrarão por aqui serão baseadas no uso da linguagem Ruby usando o sistema operacional Windows. Para encerrar o registro, não pretendo ir profundamente na linguagem. Este post e os próximos são destinados a você que já programa, que conhece POO, que já ouviu falar diversas vezes no “Ruby on Rails” e que até agora não foi atrás para estudar.

Como um pouco de história é sempre bom, a linguagem Ruby está na praça desde 1995 mas apenas recentemente tem se tornado popular graças ao lançamento do Ruby On Rails que é um framework web. Lançado em 2004, esse framework foi desenvolvido com o objetivo de acelerar o desenvolvimento de sites. Nós vamos chegar nele em breve, mas antes, vamos falar um pouco da linguagem Ruby.

Ruby é totalmente orientada à objetos, mas você pode também usar programação estruturada. Neste caso, variáveis e funções (que na verdade são métodos) definidas fora de alguma classe, por exemplo, serão tratadas como parte de um objeto, ou seja, tudo é objeto, até mesmo as classes que em algumas linguagens são definidas como primitivas. Agora vamos sair da teoria e ir para a prática. Nada melhor para aprender do que praticar.

O primeiro passo é entrar no site do Ruby On Rails e fazer o download do Windows Installer. Depois de ter instalado, vá para o menu iniciar e selecione a opção fxri. Deverá abrir uma interface gráfica que foi desenvolvida para termos rápido acesso à documentação. Além disso, também temos na parte inferior da tela um prompt chamado irb.

O irb (interactive Ruby Shell) é um interpretador interativo de linha de comando que acompanha as distribuições da linguagem Ruby. Ele serve para você fazer testes rápidos e é nele que vamos começar. Você também pode abrir o irb através do prompt (cmd). Basta acessar o diretório bin da pasta onde tiver instalado o Ruby e digitar irb. Logo quando abrir, experimente pressionar o enter várias vezes. Você irá notar que existe um número no prompt que está sendo incrementado. Este é o número de linhas digitadas na sessão atual.

Além deste número, temos o nome do programa que está sendo executado entre parênteses, que no caso é o “main” e ainda, logo após o sinal de dois pontos, temos a indicação do nível de produndidade de determinada linha, que no caso é zero.

Para entender esse nível de profundidade, digite o código abaixo que está em negrito no irb:

irb(main):001:0> n = 1
irb(main):002:0> if n == 1
irb(main):003:1> puts “n igual a 1″
irb(main):004:1> end
n igual a 1
=> nil
irb(main):005:0>

Quando colocamos o if, obrigatóriamente entramos em uma instrução de bloco. Naturalmente o que vai dentro do bloco está em outro nível. A indentação do codigo torna mais fácil de entender o que é esse nível de profundidade. Veja abaixo:

irb(main):001:0> n = 1
irb(main):002:0> if n == 1
irb(main):003:1> puts “n igual a 1″ # Aqui temos o nível 1
irb(main):004:1> end # Aqui temos o nível 1 sendo encerrado
n igual a 1
=> nil

Agora ficou mais fácil de enteder. Aproveite e mostrei como colocar comentários no meio do código usando o # (sustenido). Pra mostrar que tudo é objeto, digite as linhas abaixo:

irb(main):005:0> n.class
=> Fixnum
irb(main):006:0> n.methods

Você recebeu uma listagem dos métodos públicos da instância n da classe Fixnum. Esses métodos também podem ser acessados através de n.public_methods. Também temos n.private_methods que lista os métodos privados. Você deve digitar também Fixnum.public_methods. Agora você terá uma listagem dos métodos públicos da classe, que são diferentes dos da instância.

Bem, o ideal agora é você sair fazendo testes com os tipos de dados que você já conhece de outras linguagens, vendo seus métodos, seus tipos, tentando usar expressões, tentando fazer condicionais, ou seja, se familiarizar um pouco com a sintaxe da linguagem e aguardar o próximo post. Espero que até lá você já esteja afiado com a sintaxe e com os principais tipos de dados para começarmos a falar sobre o mod_ruby e futuramente sobre Rails. Não esqueça da documentação disponível no fxri ;) Bons estudos!

Ainda não usa RSS e nem sonha o que é OPML? Tá por fora!

Monday, April 2nd, 2007

A rotina de profissionais de diferentes áreas não é muito diferente quando o assunto é ir atrás de informações. Uns ainda optam em assinar o sujo jornal que chega com informações do dia anterior e outros chegam ao trabalho e visitam os principais portais de notícias. Temos ainda os mais atentos que visitam sites internacionais e blogs que realmente acrescentam algo.

O tempo “gasto” com essa leitura diária é considerável, porém, indispensável. O que todos os sedentos por informação deveriam saber é que não é necessário ficar indo de site em site para saber as novidades, e ainda, é possível reduzir consideravelmente o tempo gasto e continuar bem informado.

Certamente vocês já viram por aí comentários sobre RSS mas, como o tempo urge, ainda não pesquisaram sobre o assunto. Pois bem, o RSS pode mudar sua vida. Imagine que você tivesse apenas um lugar onde você pudesse facilmente acessar todas as informações que você julga mais importantes para seu dia-a-dia. O RSS e os agregadores de feeds permitem isso.

Agregadores são programas que permitem que você acrescente feeds RSS nele e, eles mostram de forma organizada as informações contidas nesses feeds. Mas o que são esses feeds? Bem, os principais sites disponibilizam seu conteúdo de uma ou mais formas e o feed RSS é uma dessas formas. RSS é um padrão para distribuição de conteúdo que serve apenas para programas entenderem.

Agora você já sabe o que é agregador e também o que é RSS. Falta apenas começar a tirar proveito dessa tecnologia. Existem dois tipos de agregadores, os on-line e aqueles que você precisa instalar no seu micro. Entre os on-line, cito o Google Reader - que é o que estou usando atualmente - o NetVibes e o famoso BlogLines. Para instalar, você pode tentar o FreeReader que é razoável. Além desses, têm também embutidos ou como extensão no Firefox, no IE 7.0 e no Thunderbird.

A vantagem de usar os on-line é enorme, principalmente para quem usa vários micros. Faça a sua inscrição em um deles e comece a caçar os RSS’s dos sites que você mais acessa e acrescente esses feeds no seu agregador. Depois disso, você chegará todo dia cedo no seu trabalho e acessará apenas um programa que mostrará, de forma organizada, todas as informações que você considera mais relevantes em apenas uma página. É fantástico!

Depois de um certo tempo, você vai notar que a quantidade de feeds que você terá em seu agregador vai ficar bem grande e você poderá enfrentar dificuldades caso queira mudar de agregador. É aí que entra o OPML. Os bons agregadores permitem que você exporte ou importe sua lista de feeds. Isso é muito útil quando você quiser mudar de agregador e ainda, quiser compartilhar sua lista com seus amigos. O OPML é o formato que os agregadores usam para exportar e importar sua lista.

Tanto o RSS como o OPML são padrões XML e são usados para organizar informações. O RSS contém listagens de notícias, artigos, posts ou outros tipos de conteúdo, normalmente com títulos, datas de publicação, descrição e muitas vezes até o texto inteiro. O OPML, por sua vez, é uma listagem de feeds RSS que têm o endereço de determinado RSS bem como seu título.

Como a maioria dos sites sobrevive de audiência, qual a vantagem que eles têm de disponibilizar um feed RSS? No feed, você pode colocar uma notícia inteira ou apenas o título e uma breve descrição, que é o que normalmente é feito. Você recebe no seu agregador um pedaço da informação e caso queira por completo, terá que acessar o site. Isso é feito com apenas um clique na própria notícia dentro do agregador, aí você vai para a página que têm o conteúdo completo no site de origem da informação.

Para os que gostam do significado de acrônimos:

RSS: Really Simple Syndication ou Rich Site Summary
OPML: Outline Processor Markup Language

Vejam também:

- O ícone usado para o OPML
- Um validador de OPML