Skip to content

Latest commit

 

History

History
412 lines (301 loc) · 4.7 KB

talk.md

File metadata and controls

412 lines (301 loc) · 4.7 KB

!SLIDE

¿Quiénes somos?

!SLIDE

Ruby Argentina

Asociación Civil

!SLIDE

Hoy vamos a contarles acerca de :

!SLIDE

ルビ (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

Programmer Happiness Oriented

!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

Web Frameworks


### Objetivo principal: Más productividad

!SLIDE

Ruby on Rails


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

##### (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 dá 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

!SLIDE

Gems Más Usados


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

!SLIDE

Desktop Frameworks


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

!SLIDE

Recursos


### ruby-lang.org
### Lista [email protected]
### ruby.com.ar - @rubyargentina

!SLIDE

Eventos en Argentina


## Meetups (Mensuales)
## RubyConf Argentina 2011 (Noviembre)

!SLIDE

Shugo Maeda

Uno de los responsables de que Ruby exista.

!SLIDE

Aaron Patterson

Integrante del core de Ruby y de Rails.

!SLIDE

Konstantin Haase

Responsable del web framework Sinatra.

!SLIDE

Scott Chacon

Git core contributor y CIO de GitHub

!SLIDE

Tom Preston-Werner

CTO de GitHub

!SLIDE

Luis Lavena

Integrante del core de Ruby

!SLIDE

Y muchos más.

!SLIDE

8 y 9 de Noviembre

Ciudad Cultural Konex

!SLIDE

@rubyconfar



### 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)