Skip to content

Latest commit

 

History

History
465 lines (321 loc) · 5.32 KB

talk.md

File metadata and controls

465 lines (321 loc) · 5.32 KB

!SLIDE

¿Quiénes somos?

!SLIDE

Ruby Argentina

Asociación Civil

!SLIDE

Hoy vamos a contarles acerca de:

!SLIDE

ルビ (Ruby)

!SLIDE

##Agenda

  • Características de Ruby
  • Instalar Ruby
  • Web Frameworks
  • Ruby Ecosystem
  • Recursos
  • Eventos locales

!SLIDE

##Características de Ruby

!SLIDE

Multiplataforma


### *Windows*
### *Linux*
### *Mac OS*

!SLIDE

Múltiples implementaciones


### MRI: C
### JRuby: Java
### IronRuby: .NET
### Rubinius: Ruby

!SLIDE

Interpretado

!SLIDE

Dinámico


@@@ ruby value = 42 puts value # => 42 value = "Hello, UP!" puts value # => Hello, UP! @@@

#####(Las variables son objetos y al definirse no se especifica el tipo)

!SLIDE

Orientado a Objetos

!SLIDE

En Ruby todo es un objeto


@@@ ruby
>> "fnoCybuR".reverse
=> "RubyConf"

@@@

!SLIDE

Todo es Abierto

!SLIDE

(No sólo el código fuente es abierto: https://github.com/ruby/ruby)
@@@ ruby

class String
  def greet
    "Hola #{self}!"
  end
end

>> "UP".greet
=> "Hola UP!"

@@@

!SLIDE

Es muy Expresivo

!SLIDE code

@@@ ruby

10.times do
  puts "<3"
end

puts "Hello, UP!" if Time.now.friday?

(1..5).each do |i|
  puts "El cuadrado de #{i} es #{i * i}"
end

@@@

!SLIDE

"Ruby is designed for programmer happiness"


matz

!SLIDE

Interacciones ágiles con bases de datos

!SLIDE

@@@ ruby

University.find_by_name("UP")

@@@

!SLIDE

Closure


@@@ ruby
user = "Foo Bar"
10.times do
  puts user
end

# Donde *user* es una variable que fue creada 
# fuera del bloque y el bloque puede acceder a ella

@@@

!SLIDE

Lambda


@@@ ruby
reverse_string_order = -> x, y { y.to_s <=> x.to_s }
[1, 20, 3].sort &reverse_string_order

square = -> n { n * n }
[1, 2, 3, 4, 5].map &square

@@@

!SLIDE

Instalar Ruby

!SLIDE

Ruby.install!

  • Mac OS: Ya viene instalado
  • Linux: Ya instalado, o "apt-get install ruby ..."
  • Windows: rubyinstaller.org

!SLIDE

Ruby.installed?

conf$ ruby -v
=> ruby 1.9.....



Interactive Ruby

conf$ irb

@@@ ruby

"hola mundo".split
=> ["hola", "mundo"] 

@@@

!SLIDE

Probar Ruby online

http://tryruby.org

!SLIDE

Web Frameworks


### Objetivo principal: Más productividad

!SLIDE

Ruby on Rails

!SLIDE

MVC


## "Convention Over Configuration"
## "Don’t Repeat Yourself" (DRY)
## ORM -> ActiveRecord
## Database Migrations
## *Generadores*

!SLIDE


##### (Ejemplo)

!SLIDE

#Sinatra


## *Minimalista. Simple.*
@@@ ruby require 'sinatra'
get '/hi' do
  "Hello World!"
end

@@@

!SLIDE

Ejemplo de Padrino.rb

!SLIDE

Otros Frameworks


## Cuba
## Padrino
### Otros más... (Sobre Rack)

!SLIDE

Ruby Ecosystem

!SLIDE

Windows Friendly

Ruby Installer

Rails Installer

!SLIDE

Ruby Version Management

rvm (Mac/Linux)

pik (Windows)

!SLIDE

Rake: Ruby Make


## #Rakefile @@@ ruby task :default => [:test]
task :test do
  ruby "test/unittest.rb"
end

@@@

#Bash

@@@ bash

rake test

@@@

!SLIDE

RubyGems: Distribución de paquetes


##(Las cosas que no te da Ruby las podés obtener con RubyGems)

!SLIDE

RubyGems: Ejemplo @Twitter


## #bash @@@ bash gem install 'twitter' irb @@@
## #irb @@@ ruby
> require 'twitter'
=> true
> Twitter.user_timeline("_nesto").first.text
=> "cerrando detalles de la charla de #Ruby para la UP"

!SLIDE

Git


## SCM (Como SVN, CVS pero mejor!)
### Proyectos en Git: Linux, Debian, Eclipse

!SLIDE

GitHub


## Social Coding (Open Source Fun!)
### Proyectos en GitHub: jQuery, Symfony, DJAngo, Linux Kernel

!SLIDE

Gems Más Usados


### Sass
### Capistrano
### Haml
### Capybara
### Cucumber
### Rails

!SLIDE

Desktop Frameworks


### Shoes
### FX Ruby
### Ruby QT

!SLIDE

Recursos


### ruby-lang.org/es/ -> "Ruby en 20 minutos"
### Lista [email protected]
### ruby.com.ar - @rubyargentina
### Rails for Zombies -> http://railsforzombies.org

!SLIDE

Eventos locales

!SLIDE

Meetups (Mensuales)


Se anuncian en www.ruby.com.ar

!SLIDE

RubyConf Argentina 2011

8 y 9 de Noviembre

Ciudad Cultural Konex

Parte del "Tour Ruby Sur"

!SLIDE

Speakers



Shugo Maeda

Aaron Patterson

Konstantin Haase

Scott Chacon

Tom Preston-Werner

Luis Lavena


### Y muchos más.

!SLIDE

@rubyconfar


!SLIDE

Martin Aceto (@maceto)
Ernesto Tagwerker (@_nesto)
Leandro Lopez (@inkel)
Matias Owsianik (@matiasow)
Sebastian Rabuini (@sebasr)
Michel Martens (@soveran)
Lucas Florio (@lucasefe)
Chad DePue
Tom Henrik Aadland (@tomhenrik)
Nicolás Cerrini (@ceneon)

!SLIDE

¿Preguntas?

!SLIDE

Gracias por venir



@rubyconfar