42
Ruby Beyond Rails Gaveen Prabhasara http://gaveen.owain.org Lanka Ruby User Group 28 October 2009

Ruby Beyond Rails

Embed Size (px)

DESCRIPTION

Slides from my session at Lanka Ruby User Group meetup (28th Oct 2009). I talked about why Ruby is much more than just Rails and web applications.

Citation preview

Page 1: Ruby Beyond Rails

RubyBeyondRails

Gaveen Prabhasara

http://gaveen.owain.org

Lanka Ruby User Group

28 October 2009

Page 2: Ruby Beyond Rails

Ruby beyond Rails

Page 3: Ruby Beyond Rails

1993

Matz

(Yukihiro Matsumoto)

Creates RubyRuby beyond Rails

Page 4: Ruby Beyond Rails

Late 90s

Ruby gets

Recognition outside

JapanRuby beyond Rails

Page 5: Ruby Beyond Rails

2004

DHH

(David Heinemeier

Hansson) Creates

Ruby on RailsRuby beyond Rails

Page 6: Ruby Beyond Rails

Then

Ruby becomes mainstream

Ruby beyond Rails

Page 7: Ruby Beyond Rails

Now

Everybody think Ruby is the shorten termfor Ruby on Rails

Ruby beyond Rails

Page 8: Ruby Beyond Rails

Now

Everybody think Ruby is the shorten termfor Ruby on Rails

And Everything is Fine! :)

Ruby beyond Rails

Page 9: Ruby Beyond Rails

Ruby beyond Rails

Page 10: Ruby Beyond Rails

Ruby is aWeb programming language, right?

Ruby beyond Rails

Page 11: Ruby Beyond Rails

No!(And sort of Yes)

Ruby beyond Rails

Page 12: Ruby Beyond Rails

What else can Ruby Do?

Ruby beyond Rails

Page 13: Ruby Beyond Rails

Quite a lot actually

Ruby beyond Rails

Page 14: Ruby Beyond Rails

Ruby beyond Rails

“a dynamic, open source programming language with a focus onsimplicity and productivity. It has an elegant syntax that is naturalto read and easy to write.”

"a dynamic, reflective, general purpose object-oriented programminglanguage...

- Ruby Official Website

- Wikipedia

http://www.ruby-lang.org/

Page 15: Ruby Beyond Rails

Ruby beyond Rails

has many implementations

MRI/YARV, JRuby, Rubinius, IronRuby,MagLev, Blue Ruby, MacRuby, HotRuby,

tinyrb, etc.

Which means Ruby is available on manySoftware platforms

Page 16: Ruby Beyond Rails

Ruby beyond Rails

can run in many environments

Linux, Windows, MacOS X, SymbianOS,Common Unix variants, etc.

Which means Ruby is available on manyOperating Systems

Page 17: Ruby Beyond Rails

Good string processing

Good RegEx engine (Oniguruma)

Easy network programming

Highly readable code

Low entry barrier

High developer happiness

Among other things,

Ruby beyond Rails

Page 18: Ruby Beyond Rails

Let's see what else is there

Ruby beyond Rails

Page 19: Ruby Beyond Rails

Before we start

http://www.slideshare.net/adamwiggins/ruby-isnt-just-about-rails-presentation

Ruby beyond Rails

Page 20: Ruby Beyond Rails

Web Application Frameworks

Ruby beyond Rails

Page 21: Ruby Beyond Rails

Ruby can be used to program web applications

If you like with many available options such as

Ruby beyond Rails

http://rubyonrails.org/ http://merbivore.org/ http://www.sinatrarb.com/

Page 22: Ruby Beyond Rails

Ruby beyond Rails

Lightweight Web Servers

Page 23: Ruby Beyond Rails

Ruby beyond Rails

There are quite a few lightweight web servers/

Web server libraries written in Ruby

http://code.macournoyer.com/thin/ http://mongrel.rubyforge.org/

http://unicorn.bogomips.org/

Page 24: Ruby Beyond Rails

Ruby beyond Rails

Web Servers Interface

Page 25: Ruby Beyond Rails

Ruby beyond Rails

In the form of Rack, unifies the API for web servers,

web frameworks, and software in between

http://rack.rubyforge.org/

Page 26: Ruby Beyond Rails

Ruby beyond Rails

Scripting

Page 27: Ruby Beyond Rails

Ruby beyond Rails

Ruby has always been a popular choice as aScripting language

Page 28: Ruby Beyond Rails

Other than that there are several scriptingTools available in the Ruby world

Ruby beyond Rails

Rake - http://rake.rubyforge.org/

Thor - http://github.com/wycats/thor

Boson - http://github.com/cldwalker/boson

Page 29: Ruby Beyond Rails

Ruby beyond Rails

There is also a Ruby Shell available forscripting purposes

http://rush.heroku.com/

Page 30: Ruby Beyond Rails

Security

Ruby beyond Rails

Page 31: Ruby Beyond Rails

Ruby beyond Rails

The popular Open Source Exploitation Frameworkand Security tool Metasploit is written with Ruby

From the web UI to the disassembler

http://www.metasploit.com/

Plus the Metasploit Rex library (Ruby) which isincluded in the Motasploit Framework contains

a lot a goodies.

Check it out!

Page 32: Ruby Beyond Rails

Mobile Applications

Ruby beyond Rails

Page 33: Ruby Beyond Rails

Ruby beyond Rails

Ruby native implementation is already availableunder certain versions of SymbianOS

Rhodes mobile application framework enablesthe development of cross-platform mobile applicationsFor iPhone, Android, WinMo, Symbian, BlackBerry

using Ruby which are compiled into native code

http://rhomobile.com/

Page 34: Ruby Beyond Rails

VoIP

Ruby beyond Rails

Page 35: Ruby Beyond Rails

Ruby beyond Rails

Adhearsion project brings the elegance of RubyInto the voice application domain

http://adhearsion.com/

Page 36: Ruby Beyond Rails

Deployment

Ruby beyond Rails

Page 37: Ruby Beyond Rails

Capistrano makes deploying Ruby web applications(and others up to a certain mark) very easy

Ruby beyond Rails

http://www.capify.org/

There are alternatives to Capistrano (for Rails

deployment) such asVlad - http://rubyhitsquad.com/Vlad_the_Deployer.html

Inploy - http://github.com/dcrec1/inploy

Page 38: Ruby Beyond Rails

Infrastructure Management

Ruby beyond Rails

Page 39: Ruby Beyond Rails

Ruby beyond Rails

Puppet is the current industry champion in theConfiguration Management game

http://reductivelabs.com/products/puppet/

Chef is another tool similar to Puppethttp://github.com/opscode/chef

Page 40: Ruby Beyond Rails

Ruby beyond Rails

What do you think now?

Page 41: Ruby Beyond Rails

Ruby beyond Rails

For further information have a look at the white paper“The Ruby and Rails Ecosystem”

http://www.infoether.com/ruby-and-rails-whitepaper

Disclaimer: The author was completely unaware of this whitepaper whenhe was preparing these slides

Page 42: Ruby Beyond Rails

Ruby beyond Rails

These are just generic introductions

Had to manage within the time constraints

Hope to do some hands on sessions in future

Q & A