SlideShare una empresa de Scribd logo
Ruby on Rails:
Comedia en 3 actos
I.
Prólogo
O de cómo un lenguaje creado en
Japón y un framework hecho por un
tío danés pueden tener algo que ver
con tu vida.
“...Instalando que es gerundio...”   Linux
Windows
“...Instalando que es gerundio...”




                                     http://bitnami.org/stack/rubystack
Buenas intros
“...y se hizo Ruby...”




                         http://www.humblelittlerubybook.com/


                         http://www.ruby-lang.org/es/documentation/
Podéis tener abierto...
“...y se hizo Ruby...”




                         http://www.ruby-lang.org/es/documentation/quickstart/


                         http://railsapi.com/
“...y se hizo Ruby...”




                         Snippets
                         en Textmate e IRB
II.
Romance
O de cómo te puedes
enamorar de una
tecnología en 30 minutos.
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
                                                   1   # SQLite version 3.x
                                                   2   #   gem install sqlite3-ruby (not necessary on OS X Leopard)
                                                   3   development:
                                                   4     adapter: sqlite3
                                                   5     database: db/development.sqlite3
                                                   6     pool: 5
                                                   7     timeout: 5000
                                                   8
                                                   9   # Warning: The database defined as "test" will be erased and
                                                  10   # re-generated from your development database when you run "rake".
                                                  11   # Do not set this db to the same as development or production.
                                                  12   test:
                                                  13     adapter: sqlite3
                                                  14     database: db/test.sqlite3
                                                  15     pool: 5
                                                  16     timeout: 5000
                                                  17
                                                  18   production:
                                                  19     adapter: sqlite3
                                                  20     database: db/production.sqlite3
                                                  21     pool: 5
                                                  22     timeout: 5000
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




              Hello, Rails!
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




                            Scaffolding
“... en el principio reinaban las tinieblas...”
                                         Scaffolding
“... en el principio reinaban las tinieblas...”
                                        Migration
“... en el principio reinaban las tinieblas...”
                                        Migration
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




    (revisemos...)
                     Bingo!
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




                  DRY
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
                                                   1 class CommentsController < ApplicationController
                                                   2   def index
                                                   3     @post = Post.find(params[:post_id])
                                                   4     @comments = @post.comments
                                                   5   end
                                                   6
                                                   7   def show
                                                   8     @post = Post.find(params[:post_id])
                                                   9     @comment = @post.comments.find(params[:id])
                                                  10   end
                                                  11
                                                  12   def new
                                                  13     @post = Post.find(params[:post_id])
                                                  14     @comment = @post.comments.build
                                                  15   end
                                                  16
                                                  17   def create
                                                  18     @post = Post.find(params[:post_id])
                                                  19     @comment = @post.comments.build(params[:comment])
                                                  20     if @comment.save
                                                  21       redirect_to post_comment_url(@post, @comment)
                                                  22     else
                                                  23       render :action => "new"
                                                  24     end
                                                  25   end
                                                  26
“... en el principio reinaban las tinieblas...”
                                                  27      def edit
                                                       28      @post = Post.find(params[:post_id])
                                                       29      @comment = @post.comments.find(params[:id])
                                                       30    end
                                                       31
                                                       32    def update
                                                       33      @post = Post.find(params[:post_id])
                                                       34      @comment = Comment.find(params[:id])
                                                       35      if @comment.update_attributes(params[:comment])
                                                       36        redirect_to post_comment_url(@post, @comment)
                                                       37      else
                                                       38        render :action => "edit"
                                                       39      end
                                                       40    end
                                                       41
                                                       42    def destroy
                                                       43      @post = Post.find(params[:post_id])
                                                       44      @comment = Comment.find(params[:id])
                                                       45      @comment.destroy
                                                       46
                                                       47      respond_to do |format|
                                                       48        format.html { redirect_to post_comments_path(@post) }
                                                       49        format.xml { head :ok }
                                                       50      end
                                                       51    end
                                                       52
                                                       53 end
Intermedio
III.
Tocata y
fuga
O de cómo lo que parecía una sola cosa
es en realidad diferentes partes que
funcionan juntas y tienen su propia
alma.
“... sobre tí levantaré mi iglesia...”



                                         ActiveRecord
                                         ActionController
                                         ActionView
                                         Migrations
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




                                          validates_presence_of
                                         validates_uniqueness_of
                                          validates_associated
                                                  etc...
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




              Relaciones
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




                    La manera coñazo:
“... sobre tí levantaré mi iglesia...”




               Rails way:
“... sobre tí levantaré mi iglesia...”



                            Tipos
“... sobre tí levantaré mi iglesia...”
                                   belongs_to
“... sobre tí levantaré mi iglesia...”
                                   has_one
“... sobre tí levantaré mi iglesia...”
                                    has_many
“... sobre tí levantaré mi iglesia...”
                                   has_many :through
“... sobre tí levantaré mi iglesia...”
                                         has_many :through
“... sobre tí levantaré mi iglesia...”
                                   has_many :through como atajo
“... sobre tí levantaré mi iglesia...”

                                  Polimórficas
“... sobre tí levantaré mi iglesia...”
                                   Polimórficas
“... sobre tí levantaré mi iglesia...”   Metodos añadidos por las relaciones
“... sobre tí levantaré mi iglesia...”

                                 Metodos añadidos por las relaciones
“... sobre tí levantaré mi iglesia...”

                                 Callbacks
“... sobre tí levantaré mi iglesia...”

                                 Callbacks
“... sobre tí levantaré mi iglesia...”

                                 Extensiones
Querys
Escenario
Migraciones
Fin y Comienzo
Aitor García
aitor@linkingpaths.com
twitter.com/aitorgarciarey

Más contenido relacionado

Similar a Ruby on Rails: Comedia en 3 actos

Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
javier ramirez
 
Introducción a Clojure
Introducción a ClojureIntroducción a Clojure
Introducción a Clojure
Denis Fuenzalida
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
César Rodas
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
RootedCON
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
Juan Sacco
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
Gustavo Andres Brey
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
Jorge Alberto Rodríguez Suárez
 
The Original Hacker número 11.
The Original Hacker número 11.The Original Hacker número 11.
The Original Hacker número 11.
Huehue 1
 
Slides components en
Slides components enSlides components en
Slides components enJavier López
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
Víctor Bolinches
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
Ignacio Sorribas
 
Tecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-InjectionTecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-Injectionq3rv0
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
JuancaPompilla
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer Réplica
Andrés Pizarro
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
Plain Concepts
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
Eduard Tomàs
 

Similar a Ruby on Rails: Comedia en 3 actos (16)

Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 
Introducción a Clojure
Introducción a ClojureIntroducción a Clojure
Introducción a Clojure
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
The Original Hacker número 11.
The Original Hacker número 11.The Original Hacker número 11.
The Original Hacker número 11.
 
Slides components en
Slides components enSlides components en
Slides components en
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
 
Tecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-InjectionTecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-Injection
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer Réplica
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 

Último

DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 

Último (20)

DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 

Ruby on Rails: Comedia en 3 actos