Arquivo da categoria ‘ruby’

FOX Toolkit e FXRuby no Slackware

O FOX é um toolkit baseado no C++ para desenvolvimento de aplicações gráficas (também conhecidas como GUIs) de forma fácil e eficaz. O FOX oferece uma coleção vasta e crescente de controles e provê muitas facilidades como arrastar e soltar (drag and drop), seleções e também widgets do OpenGL para manipulação de gráficos 3D.
O FOX também implementa ícones, imagens, e itens de conveniência para o usuário como ajuda e dicas (tooltips). Tooltips podem ser usadas em objetos 3D.

Para mais detalhes visitem a homepage no endereço http://www.fox-toolkit.org/

Esse toolkit tem ligações (bindings) para várias linguagens. Para programar em Python use FXPy, em Eiffel use EiffelFox e para programar em Ruby use FXRuby.

Existem alguns projetos grandes usando FXRuby, entre eles o FreeRIDE que abordei no post anterior, o gerenciador de banco de dados DbTalk e o gerenciador de projetos Mondrian. Veja mais detalhes na homepage http://www.fxruby.org/.

Se você usa o Slackware 12 e quer instalar o FOX, você pode baixar o pacote fox-1.6.32-i486-1tdm.tgz. Se você não usa o Slackware você deve pesquisar no repositório da sua distro preferida ou baixar o código fonte e compilar usando o famoso trio “./configure && make && make install”. Obs: não deixe de executar ./configure –help para ver quais opções você vai querer ativar.

Depois de instalar o FOX você deve instalar o FXRuby usando o comando gem.

$ su root
# gem install fxruby

Veja os exemploes em de código em /usr/lib/ruby/gems/1.8/gems/fxruby-1.6.14/examples/

$ ls -m /usr/lib/ruby/gems/1.8/gems/fxruby-1.6.14/examples/
babelfish.rb, bounce.rb, browser.rb, button.rb, custom_table_item.rb, datatarget.rb, dctest.rb, dialog.rb, dilbert.rb, dirlist.rb, dragdrop.rb, dragsource.rb, dropsite.rb, foursplit.rb, gltest.rb, glviewer.rb, groupbox.rb, header.rb, hello2.rb, hello.rb, iconlist.rb, icons, image.rb, imageviewer.rb, inputs.rb, iRAA.rb, mditest.rb, pig.rb, raabrowser.rb, RAA.rb, ratio.rb, README, rulerview.rb, scintilla-test.rb, scribble-orig.rb, scribble.rb, shutter.rb, splitter.rb, styledtext.rb, tabbook.rb, table.rb, textedit, unicode.rb
$ ruby /usr/lib/ruby/gems/1.8/gems/fxruby-1.6.14/examples/hello.rb

Pronto agora você pode se divertir fazendo programas multiplataformas usando FXRuby. Quem quiser ir a fundo no assunto pode até comprar o livro do FXRuby http://www.pragprog.com/titles/fxruby.

[]’s

Usando o FreeRIDE no Linux

O FreeRIDE (Free Ruby Integrated Development Environment) é um ambiente integrado para desenvolvimento em Ruby, ele foi desenvolvido usando o FxRuby, ou seja, uma versão do  Fox Toolkit para Ruby.
O FreeRIDE inclui um interpretador Ruby, um navedor para documentação do Ruby (conhecido como RI ou Ruby Doc).
Para instalar o FreeRIDE no Linux você deve fazer o download do arquivo freeride-linux-installer-0.9.6.sh no link a seguir  http://rubyforge.org/frs/download.php/10933/freeride-linux-installer-0.9.6.sh
Para fazer a instalação você deve dar permissão de execução para o arquivo e executá-lo como root:

$ chmod a+x freeride-linux-installer-0.9.6.sh
$ su root
# ./freeride-linux-installer-0.9.6.sh

Você será perguntado em qual diretório o FreeRIDE deve ser instalado, o ideal é instalar o FreeRIDE no diretório padrão. Veja a tela abaixo:

FreeRIDE  – starting installation…

IMPORTANT NOTE
————–
FreeRIDE must be installed in /usr/local/FreeRIDE.
If you want to install it elsewhere a symbolic link will
be created from /usr/local/FreeRIDE to the chosen location

Choose where to install FreeRIDE [/usr/local] :
Installing FreeRIDE. Please wait…

——————— MANIFEST ———————

This is version 0.9.6 of FreeRIDE, the Ruby integrated
development environment.

This version is built with the following components:

Ruby               1.8.4
Fox Toolkit        1.2.16
Fox Scintilla      1.62
FXRuby             1.2.6

—————————————————-
FreeRIDE succesfully installed.
Start FreeRIDE with ‘/usr/local/FreeRIDE/freeride’

Agora basta executar o FreeRIDE, no KDE pressione ALT+F2 e aponte para o caminho do executável /usr/local/FreeRIDE/freeride

Pronto, agora você pode programar em Ruby usando uma interface gráfica.

Obs: O projeto do FreeRIDE foi interrompido na versão 0.9.6, os donos do projeto decidiram reescrever o FreeRIDE usando outro toolkit chamado wxRuby, que usa wxWidgets. Veja o link http://freeride.rubyforge.org/wiki/wiki.pl?FreeRIDE_Future. Para acompanhar o desenvolvimento visite o site http://wxride.ruby-im.net/.

[]’s

Usando o SciTE para programar em Ruby

Nessa última semana estive procurando algumas ferramentas gráficas para programar em Ruby. Hoje eu acabei de testar o SciTE. O SciTE foi criado para demonstrar o poder de um componente de edição de textos chamado Scintilla. Usando o Scintilla você pode criar editores de textos e que podem ser usados para editar o código fonte de programas e chamar compiladores e depuradores externos. O SciTE ficou tão bom que decidiram dar continuidade ao seu desenvolvimento e ele deixou de ser um programa de demonstração e se tornou um editor completo com suporte à várias linguagens, entre elas C/C++, D, C#, Java, PHP e Ruby.

Quer testar o programa? Baixe o executável já compilado para Linux no link abaixo (o único pré-requisito é ter uma versão do GTK+ igual ou superior à 2.8 na sua máquina)

http://prdownloads.sourceforge.net/scintilla/gscite176.tgz?download

Assim que terminar o download, você deve descompactar o arquivo gscite176.tgz; a partir desse ponto o programa já está pronto para rodar, mas muitas funções não estarão funcionando. Para usar todos os recursos do programa você deve fazer o seguinte:

1. Entre no diretório descompactado e copie o executavél SciTE para o diretório /usr/bin (cd gscite; cp SciTE /usr/bin)
2. Crie um diretório /usr/share/scite e copie todos os arquivos com a extenção properties para lá (cp *.properties /usr/share/scite)
3. Copie o arquivo Sci48M.png para o diretório /usr/share/pixmaps (cp Sci48M.png /usr/share/pixmaps)

Opicional: Se você quiser ainda pode baixar a tradução do SciTE para Português Brasileiro no endereço a seguir http://groups.google.com/group/scite-interest/web/locale.pt_BR.properties. Basta copiar o arquivo de tradução para o diretório /usr/share/scite com o nome locale.properties (cp locale.pt_BR.properties /usr/share/scite/locale.properties) e reiniciar a aplicação.

Pronto agora sim você pode testar o programa a vontade. Pressione ALT+F2 e execute o comando SciTE.

Até mais!

Ruby sem Rails – parte 2

Usando mod_ruby, eruby e erubis no Slackware

O mod_ruby é um módulo que permite que o Apache execute de forma nativa os scripts feitos em Ruby. Depois de instalar o mod_ruby você deve escolher qual será o seu gerador de templates, usando um gerador de templates você pode incluir o código Ruby em páginas HTML e programar no mesmo estilo do ASP e PHP. Você pode escolher o ERB que já vem incluído na distribuição padrão do Ruby ou pode usar o eRuby que foi escrito em C para ganho de desempenho. Caso você queira usar o eRuby você precisa instalar ele na sua máquina.

O código fonte do mod_ruby e do eruby podem ser encontrados no site http://modruby.net/, mas se você quer facilidade basta baixar os dois pacotes que fiz para o Slackware 12 e instalar no seu sistema.

Baixe os pacotes mod_ruby-1.2.6 e eruby-1.0.5. Depois use a ferramente installpkg para instalar no Slackware.

Depois de instalar o mod_ruby e o eruby na sua máquina, você pode instalar também o erubis. O erubis é um gerador de templates, implementado em Ruby e também usa algumas funções do eRuby.

O erubis é muito rápido, quase três vezes mais rápido do que o ERB e ainda é 10% mais rápido do que o eRuby, tem suporte à várias linguagens (Ruby/PHP/C/Java/Scheme/Perl/Javascript). Permite que você combine templates com arquivos YAML, para usar arquivos de contexto e tem suporte à Ruby on Rails.

Para instalar o erubis você deve baixar os pacotes abstract e erubis do site http://rubyforge.net e executar os comandos abaixo como root:

$ tar xjf abstract_1.0.0.tar.bz2
$ cd abstract_1.0.0/
$ su root
# ruby setup.rb
# exit
$ cd ..
$ tar xjf erubis-2.5.0.tar.bz2
$ cd erubis-2.5.0/
# su root
# ruby setup.rb
$ cp contrib/erubis-run /usr/lib/ruby/1.8/apache

Agora vamos configurar a integração com o Apache.

Inclua as linhas abaixo no seu arquivo /etc/httpd/httpd.conf e salve o arquivo.

LoadModule ruby_module lib/httpd/modules/mod_ruby.so
<IfModule mod_ruby.c>
RubyRequire apache/ruby-run
RubyRequire apache/eruby-run
RubyRequire apache/erubis-run
<Location /erubis>
SetHandler ruby-object
RubyHandler Apache::ErubisRun.instance
</Location>
<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ErubisRun.instance
</Files>
</IfModule>

Depois disso faça com que o usuário apache seja o dono do diretório onde as páginas web estarão.

chown -R apache:apache /var/www

Isso é necessário pois o erubis precisa de acesso de escrita no diretório htdocs para criar uma área de cache.

Para fazer um teste copie o arquivo de exemplo da pasta do erubis para dentro da pasta /var/www/htdocs

# cp erubis-2.5.0/examples/basic/example.eruby /var/www/htdocs/example.rhtml

Agora abra o arquivo example.rhtml no navegador.

Pronto, agora você está rodando Ruby sem Rails!

Até mais!

Ruby sem Rails

O Ruby e o Rails

Na semana passada comecei a estudar a linguagem Ruby. Li alguns tutoriais e fiquei muito empolgado com a facilidade de uso e com o método de programação. A linguagem Ruby é muito flexivel, nela quase tudo é tratado como um objeto. Se você não acredita e quer ver com seus próprios olhos, dê uma olhada no shell interativo do tutorial TryRuby (em inglês) ou instale o Ruby na sua máquina e siga o tutorial Ruby em Vinte Minutos (bom e velho Português do Brasil!).

Aprendi trabalhar com variáveis, fazer loops, criar classes, blocos, etc., porém foi muito difícil encontrar um bom tutorial que me explicasse como usar a liguagem Ruby para gerar páginas dinâmicas, sem usar o framework Rails. Tudo o que eu procurava na web me levava ao Rails. Acredito que isso faz muitas pessoas desistirem de continuar estudando a linguagem.

Quero deixar claro que não tenho nada contra o Rails. O Rails é um ótimo framework, faz as coisas se tornarem muito simples, porém fica dificil para o iniciante em Ruby separar o que faz parte do framework e o que faz parte da linguagem em si. E na verdade a pessoa terá que aprender a usar o framework e os novos métodos do Ruby ao mesmo tempo. Se você conhece alguém possa tirar suas dúvidas, acredito que aprender os dois simultâneamente é o caminho a seguir, porém, se como eu você é auto-didata, você pode passar mais um pouco de tempo aprendendo a usar a linguagem Ruby antes de partir para Rails.

O Rails foi desenvolvido para aumentar a produtividade, mas se você tem muitas dúvidas sobre Ruby você não será produtivo e pode acabar se confundindo. Por outro lado, se as suas dúvidas quanto a linguagem forem sanadas, você realmente alcançará a produtividade desejada.

O Ruby sem o Rails

Antes de sair procurando na web decidi entar no diretório de instalação do Ruby para revirar o código fonte de alguns scripts e ver se encontrava algo que me apontasse o caminho das pedras. Abri o meu terminal e fiz aquela pergunta que todo bom usuário do Slackware faz “whereis ruby”, uma das respostas apontava para “/usr/lib/ruby/” entrei nesse diretório e encontrei os scripts do Ruby 1.8, alguns minutos depois cheguei ao arquivo erb.rb (outro ponto forte do Ruby, todo script vem com muita documentação incluída em seu código fonte).

O ERB é um sistema de template poderoso e de fácil uso, que permite embutir o Ruby dentro de arquivos de texto, xml e até mesmo arquivos HTML. Todo código Ruby que for incluido dentro de tags <% %> será executado como um script Ruby.

No fim da documentação encontrei o que estava procurando, segue a tradução:
# Há uma variedade de soluções para geração de templates disponíveis em vários projetos feitos em Ruby:
# * O grande irmão do ERB, eRuby, trabalha da mesma forma mas é escrito em C para performance;
# * Amrita (bom para produzirHTML/XML);
# * cs/Template (C para performance);
# * RDoc, distribuído com Ruby, usa o seu próprio motor para gerar templates, o qual pode ser usado em qualquer lugar;
# * e outros; faça uma busca no RAA.
# Rails, o framework para aplicações web, usa ERB para criar views.

Isso era tudo o que eu precisava saber. Apartir disso começei a pesquisar na web sobre ERB e eRuby.

O eRuby pode executar o código Ruby incluido dentro de páginas HTML e em conjunto com o mod_ruby você pode fazer o Apache servir suas páginas dinâmicas escritas em Ruby (essas páginas levam a extensão .rhtml). Para trabalhar com sessões e recuperar dados de formulários do HTML pelo método POST, você deve criar um objeto CGI dentro do código Ruby e esse objeto fará o trabalho pesado para você. No tutorial de Ruby do Eustáquio Rangel você encontra um exemplo de uso do objeto CGI.

Consulte o site do mod_ruby para pegar o código fonte dos e fazer a integração com o Apache.

No próximo post vou explicar a integração com o Apache e fornecer os pacotes para instalação no Slackware.

Vou ficando por aqui.

Até mais!