Arquivo

Posts Tagged ‘Ruby’

Livro Rails 3 Way de Obie Fernandez

Um excelente livro sobre Rails é o Rails 3 Way de Obie Fernandez. O livro de 768 páginas é bastante completo, mas não é um livro introdutório sobre Rails. Ele está voltado para usuários avançados.
É uma verdadeira referência que todo bom desenvolvedor Rails deveria estudar com bastante empenho.
O livro expressa alguns pontos de vista bem fortes do autor, como deixar totalmente de lado Test::Unit e erb em favor de RSpec e Haml, respectivamente.

Assuntos tratados na ordem em que aparecem no livro: Configurações do Rails (bundler, ambientes, etc.), roteamento, REST e sua implementação no Rails, Models, Controllers, ActiveRecord, ActiveRecord Avançado, Views, Helpers, Ajax on Rails, Gerenciamento de Sessões, Autenticação (aborda Authlogic e Devise), ActiveResource, ActionMailer, Cache, Performance, Testes com RSpec, melhorias de performance usando mecanismos internos do Rails, plugins, processamento em background (Delayed Job, Resque, Rails Runner).

Mais informações em:
http://www.rubyinside.com/review-of-the-rails-3-way-obie-fernandez-4080.html
http://nithinbekal.com/2011/review-the-rails-3-way-obie-fernandez/

Anúncios

Nova versão do Easy-Rails para Windows

Acabamos de lançar a versão 0.9.7 do Easy-Rails para Windows.Ele foi atualizado para usar o Ruby 1.9.2 e o Rails 3.0.3.
Optamos pela versão 1.9.2 do Ruby por sua melhor performance em relação às versões anteriores.
A partir de agora passamos a usar os binários e a documentação do RubyInstaller.

Além disso, já vem prontinho para acessar SQLite, MySQL e PostgreSQL.
Acesse: http://rubyforge.org/projects/easy-rails/

Também criamos um projeto do Easy-Rails no GitHub com os scripts para geração das versões binárias.

Livro “I Love Ruby”

Mais um livro free sobre Ruby: I Love Ruby.

Categorias:Programação, Ruby Tags:,

Admin para Rails

Para quem gosta do Django Admin e sonha com algo semelhante no mundo Rails, é bom ficar de olho no RailsAdmin. O projeto iniciou em agosto de 2010 com a conversão do MerbAdmin para o Rails 3 e ainda tem muito a melhorar.
De qualquer forma, vale a pena conferir…

Aprendizado de Ruby e Rails

O Fábio Akita fez um ótimo post sobre o aprendizado de Ruby e Rails:
http://akitaonrails.com/2010/06/21/akita-responde-comecando-com-ruby-on-rails

Comparação de performance

Com a ajuda de alguns amigos, fizemos uma comparação de performance bem simples e muito distante de ser um benchmark confiável entre algumas linguagens/versões usando o fibonacci de 35. Também foi realizado o fibonacci de 45 nas linguagens com melhor performance. Foi somente uma experiência e o resultado em minha máquina foi esse:

gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) – fib.c – fib2
Compilação otimizada usando: gcc -O3 -o fib2 fib.c (contribuição de Filipe Saraiva)
./fib2 35
Tempo: 0.124780
Resultado: 9227465
./fib2 45
Tempo: 15.655936
Resultado: 1134903170

Scala 2.7.7final – Fib1.scala (contribuição do Matheus Moreira)
scala Fib1 35
Tempo: 0.137780472
Resultado: 9227465
scala Fib1 45
Tempo: 19.697318756
Resultado: 1134903170

Java(TM) SE Runtime Environment (build 1.6.0_24-b07) – fib.javafib.class
java fib 35
Tempo: 0.146963799
Resultado: 9227465
java fib 45
Tempo: 20.793879543
Resultado: 1134903170

Free Pascal Compiler version 2.4.0-2 [2010/03/06] for x86_64 – fib.pas – fibp (contribuição do Nécio Veras)
Compilação otimizada usando: fpc -O3 fib.pas -ofibp
./fibp 35
Tempo: 0.221000001
Resultado: 9227465
./fibp 45
Tempo: 30.445999150
Resultado: 1134903170

gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) – fib.cfib
Compilação não otimizada usando: gcc -o fib fib.c
./fib 35
Tempo: 0.276678
Resultado: 9227465
./fib 45
Tempo: 32.527250
Resultado: 1134903170

Groovy Version: 1.8.0 JVM: 1.6.0_24 – fib2.groovy (contribuição do Wanderson Santos)
groovy fib2.groovy 35
Tempo: 0.290426544
Resultado: 9227465
groovy fib2.groovy 45
Tempo: 33.457977715
Resultado: 1134903170

Haskell – The Glorious Glasgow Haskell Compilation System, version 6.12.1 – fib.hsfibh (contribuição do Diego Victor com correção da Mônica Regina da Silva)
Compilado usando: ghc –make -O3 fib.hs -o fibh
./fibh 35
9227465
0.317424
./fibh 45
1134903170
40.989142

Ruby  – Rubinious 1.2.1dev (1.8.7 f4c08fbe 2010-12-21 JI) [x86_64-unknown-linux-gnu] – fib.rb
ruby fib.rb 35
Tempo: 1.339709
Resultado: 9227465
ruby fib.rb 45
Tempo: 158.686395
Resultado: 1134903170

JRuby 1.5.3 (ruby 1.8.7 patchlevel 249) (2010-09-28 7ca06d7) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [amd64-java]fib.rb
jruby fib.rb 35
Tempo: 4.371
Resultado: 9227465

Groovy Version: 1.8.0 JVM: 1.6.0_24 – fib.groovy (contribuição do Luís Bruno)
groovy fib.groovy 35
Tempo: 5.106544505
Resultado: 9227465

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio – fib.lua (contribuição da Mônica Regina da Silva)
lua5.1 fib.lua 35
Tempo: 5.36
Resultado: 9227465

Ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux] – fib.rb
ruby1.9.1 fib.rb 35
Tempo: 6.81764046
Resultado: 9227465

Ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]fib.rb
ruby fib.rb 35
Tempo: 7.65983433
Resultado: 9227465

Groovy Version: 1.7.5 JVM: 1.6.0_20fib.groovy (contribuição do Luís Bruno)
groovy fib.groovy 35
Tempo: 8.653575988
Resultado: 9227465

Python 2.6.5 – fib.py
python fib.py 35
Tempo: 0:00:11.448263
Resultado: 9227465

Python 3.1.2 – fib.py
python3.1 fib.py 35
Tempo: 0:00:12.620807
Resultado: 9227465

Ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] – fib.rb
ruby fib.rb 35
Tempo: 34.993339
Resultado: 9227465

Agradecimentos especiais aos amigos que contribuíram com as seguintes implementações:

Groovy – Luís Bruno / Wanderson Santos / Thiago Witt
Haskell
– Diego Victor (com correção da Mônica)
Lua – Mônica Regina da Silva
Pascal – Nécio Veras
Scala – Matheus Moreira / Thiago Witt

O Thiago Witt contribuiu com versões Groovy e Scala extramamente otimizadas usando Tail-call. Foi tão otimizado que resolvi testar o fibonacci de 10000:

Scala 2.7.7final – Fib2.scala (contribuição do Thiago Witt – Tail-call)
scala Fib2 10000
Tempo: 0.09665077

Groovy Version: 1.8.0 JVM: 1.6.0_24 – fib3.groovy (contribuição do Thiago Witt – Tail-call otimizada para evitar StackOverFlow)
groovy fib3.groovy 10000
Tempo: 15.135361192

O Thiago Witt também contribuiu com uma versão em Groovy extramamente otimizada, mas que dá StackOverflow para números grandes. Assim, testei as versões Tail Call com fibonacci de 4000:

Scala 2.7.7final – Fib2.scala (contribuição do Thiago Witt – Tail-call)
scala Fib2 4000
Tempo: 0.062994021

Groovy Version: 1.8.0 JVM: 1.6.0_24 – fib4.groovy (contribuição do Thiago Witt – Tail-call)
groovy fib4.groovy 4000
Tempo: 0.14749984

Groovy Version: 1.8.0 JVM: 1.6.0_24 – fib3.groovy (contribuição do Thiago Witt – Tail-call otimizada para evitar StackOverFlow)
groovy fib3.groovy 4000
Tempo: 2.789794005

Mini-curso de Introdução a Linguagem Ruby

Ontem pude ministrar um mini-curso de introdução à linguagem Ruby para os amigos do mestrado da UFC.
Parabéns à turma pela presença e pela excelente participação durante todo o curso!!!

Os slides do nosso curso estão disponíveis no Slide Share:

A versão ultra atualizada dos slides poderá ser sempre baixada em:
http://dl.dropbox.com/u/1477113/material_didatico/ruby/curso_ruby.odp

A documentação oficial e online do Ruby pode ser consultada em: http://ruby-doc.org/

Já a documentação offline em HTML (RDoc) do Ruby pode ser baixada em:
http://ruby-doc.org/download/ruby-1.8.6-core-rdocs.tgz

Site oficial do Ruby: http://www.ruby-lang.org/pt/

Ruby 1.9.2:
Instalador para Windows: http://rubyforge.org/frs/download.php/72170/rubyinstaller-1.9.2-p0.exe
Documentação completa em formato CHM: http://rubyforge.org/frs/download.php/72161/ruby-1.9.2-p0-doc-chm.7z

Sobre o Ruby 1.9.2:
“O Ruby 1.9.2 é uma versão moderna de Ruby. Dentre as principais características, ele finalmente fecha o gap de performance em comparação a outras linguagens de script como Python e Perl, sendo bem mais competitivo.”
Fonte: http://akitaonrails.com/2010/08/25/semana-de-ruby

Ver também: http://under-linux.org/lancado-ruby-1-9-2-1566/

No Ubuntu 10.04 (Lucid), é possível instalar o pacote ruby1.9.1.
Para usar a versão 1.9.2, podemos compilar a partir do fonte:
ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
Ver: http://torqueo.net/installing-ruby-192-and-rails-3-stable-on-ubuntu/

Na versão 10.10 (Maverick) do Ubuntu (lançada em 10/10/10), ao instalar o pacote ruby1.9.1, estaremos na verdade usando a versão 1.9.2:
Package: ruby1.9.1 (1.9.2.0-1) [universe]
Interpreter of object-oriented scripting language Ruby 1.9.2

This package provides version 1.9.2 series of Ruby, which is binary-compatible with the 1.9.1 branch.

Na próxima versão do Easy Rails (http://rubyforge.org/projects/easy-rails/ e http://github.com/regispires/easy-rails), pretendo usar o Ruby 1.9.2 e Rails 3. E realmente gostaria que mais pessoas se integrassem à nossa equipe de desenvolvimento.

Performance do Ruby 1.9 (http://programmingzen.com/2008/12/10/reflections-on-the-ruby-shootout/):

Geometric mean bar chart

Mais informações sobre Ruby em:
https://regispires.wordpress.com/tag/ruby/

Categorias:Programação, Ruby Tags:,
%d blogueiros gostam disto: