Download - Lectura PFC Events
Events
Autor: Pablo Rivera CondeDirector: César Fernández Acebal
Red social para compartir documentos y podcasts
sábado 19 de diciembre de 2009
¿Cuál es el problema?
Aislamiento de personas con conocimientos o intereses comunes.
Información muy dispersa.
Falta de publicidad de congresos con poco presupuesto.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Que es events?
Se trata de una red social...
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Que es events?
...para compartir documentos y eventos...
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Que es events?
...y aumentar la comunicación entre personas.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Qué me aporta?
Buscar más fácilmente documentos y congresos que me interesen.
Buscar compañeros de trabajo, y gente con gustos afines.
Compartir más fácilmente mi trabajo para ayudar a los demás.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Qué me aporta?
Buscar más fácilmente documentos y congresos que me interesen.
Buscar compañeros de trabajo, y gente con gustos afines.
Compartir más fácilmente mi trabajo para ayudar a los demás.
Encontrar
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Inferir los gustos de cada usuario?
Sobre gustos no hay nada escrito
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Inferir los gustos de cada usuario?
Sobre gustos no hay nada escrito
Hasta que aparecieron las matemáticas
Filtrado colaborativo
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Filtrado colaborativo
“Aquello que coincide en el pasado tenderá a coincidir en el futuro.”
Uso de la Inteligencia Colectiva.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Metodología del filtrado colaborativo
Primero busca entidades cuya información de gustos sea similar al que va a recibir recomendaciones.
Después se calcula que ítems que no haya visto van a ser de su gusto, basándose en la recopilación anteriormente filtrada.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Y todo esto, ¿Cómo?
RubyIntroducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ruby
Lenguaje de programación dinámico.
De alto nivel.
Interpretado.
Orientación a objetos pura.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
RubyGracias a su semántica y a la orientación pura a objetos, es muy expresivo.
Su capacidad de dinamismo añade una gran flexibilidad al lenguaje.
5.times{“Me encanta Ruby”}
class Numericdef mi_suma(y)self.+(y)end
end
z = 5.mi_suma 6#Ahora z vale 11
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ruby On Rails
Framework web basado en Ruby
Creado en 2005 por David Heinemeier Hansson.
“Un framework creado por desarrolladores y para desarrolladores.”
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ruby on Rails
Sigue el patrón MVC.
Filosofía REST.
Convención sobre configuración.
DRY (Don’t Repeat Yourself)
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
don’t Repeat Yourself
Se basa en que no haya nada redundante en la aplicación.
No es solo refactorización de código, sino ahorro real.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Convention over configuration
Intenta evitar todo fichero de configuración posible.
Para ello establece una serie de convenciones que, de seguirse, minimizan el código a escribir.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ejemplo de Coc
Para manipular Películas:
Objeto de modelo: Movie
Tabla de la base de datos: movies
Controlador: MoviesController
Vistas: Dentro de la carpeta movies:
new, index, show, editIntroducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ejemplo de Coc
Para manipular Películas:
Objeto de modelo: Movie
Tabla de la base de datos: movies
Controlador: MoviesController
Vistas: Dentro de la carpeta movies:
new, index, show, editIntroducción > Teóricamente > Diseño > Conclusiones > Demostración
Siguiendo este convenio no hace falta especificar nada más. Rails sabrá cual es el
comportamiento.
sábado 19 de diciembre de 2009
Problemas de Ruby on rails
Tanta convención resulta difícil de recordar al principio.
Desarrollo muy rápido si se tiene buena memoria.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Pero no fueron los únicos
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Como fue el desarrollo?
Metodología de desarrollo ágil: AUP.
Se trata de una versión ágil del proceso unificado (RUP) basándose en los riesgos.
Desarrollo mediante iteraciones.
Desarrollo guiado por las pruebas.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Planificación
1) Desarrollo del proyecto 56s 1d 5h
1.1) Análisis 3s 1d
1.1.1) Análisis de requisitos 1s
1.1.2) Especificación de requisitos 3d
1.1.3) Análisis de subsistemas 4d
1.1.4) Análisis de clases 1d
1.1.5) Análisis de interfaces de usuario 1d
1.1.6) …Especificación del plan de 2d
1.2) Diseño 8s 4d
1.2.1) Estudio general de diseño 3d
1.2.2) Diseño del incremento 1 3d
1.2.3) Diseño del incremento 2 3d
1.2.4) Diseño del incremento 3 3d
1.2.5) Diseño del incremento 4 3d
1.2.6) Diseño del incremento 5 3d
1.2.7) Diseño del incremento 6 3d
1.2.8) Diseño del incremento 7 3d
1.2.9) Diseño del incremento 8 3d
1.2.10) Diseño del incremento 9 3d
1.2.11) Diseño del incremento 10 1s
1.2.12) Diseño del incremento 11 3d
1.2.13) Diseño del incremento 12 3d
1.2.14) Diseño del incremento 13 3d
1.3) Implementación 13s
1.3.1) …Implementación del incremento 1s
1.3.2) …Implementación del incremento 1s
1.3.3) …Implementación del incremento 1s
1.3.4) Entrega 1
1.3.5) …Implementación del incremento 1s
1.3.6) …Implementación del incremento 1s
1.3.7) …Implementación del incremento 1s
1.3.8) Entrega 2
1.3.9) …Implementación del incremento 1s
1.3.10) …Implementación del incremento 1s
1.3.11) …Implementación del incremento 1s
1.3.12) …Implementación del incremento 1s
1.3.13) Entrega 3
1.3.14) …Implementación del incremento 1s
1.3.15) …Implementación del incremento 1s
1.3.16) …Implementación del incremento 1s
1.3.17) Entrega 4
1.4) Pruebas unitarias y de integración 13s
1.4.1) Pruebas del incremento 1 1s
1.4.2) Pruebas del incremento 2 1s
1.4.3) Pruebas del incremento 3 1s
1.4.4) Pruebas del incremento 4 1s
1.4.5) Pruebas del incremento 5 1s
1.4.6) Pruebas del incremento 6 1s
1.4.7) Pruebas del incremento 7 1s
1.4.8) Pruebas del incremento 8 1s
1.4.9) Pruebas del incremento 9 1s
1.4.10) Pruebas del incremento 10 1s
1.4.11) Pruebas del incremento 11 1s
1.4.12) Pruebas del incremento 12 1s
1.4.13) Pruebas del incremento 13 1s
1.5) Pruebas de sistema 1s
1.6) Implantación 1s
1.7) Formación 2s
1.8) Documentación 14s 1d 5h
Tarea Esfuerzo jun 2009 jul 2009 ago 2009 sep 2009 oct 2009
sábado 19 de diciembre de 2009
Planificación
1) Desarrollo del proyecto 56s 1d 5h
1.1) Análisis 3s 1d
1.1.1) Análisis de requisitos 1s
1.1.2) Especificación de requisitos 3d
1.1.3) Análisis de subsistemas 4d
1.1.4) Análisis de clases 1d
1.1.5) Análisis de interfaces de usuario 1d
1.1.6) …Especificación del plan de 2d
1.2) Diseño 8s 4d
1.2.1) Estudio general de diseño 3d
1.2.2) Diseño del incremento 1 3d
1.2.3) Diseño del incremento 2 3d
1.2.4) Diseño del incremento 3 3d
1.2.5) Diseño del incremento 4 3d
1.2.6) Diseño del incremento 5 3d
1.2.7) Diseño del incremento 6 3d
1.2.8) Diseño del incremento 7 3d
1.2.9) Diseño del incremento 8 3d
1.2.10) Diseño del incremento 9 3d
1.2.11) Diseño del incremento 10 1s
1.2.12) Diseño del incremento 11 3d
1.2.13) Diseño del incremento 12 3d
1.2.14) Diseño del incremento 13 3d
1.3) Implementación 13s
1.3.1) …Implementación del incremento 1s
1.3.2) …Implementación del incremento 1s
1.3.3) …Implementación del incremento 1s
1.3.4) Entrega 1
1.3.5) …Implementación del incremento 1s
1.3.6) …Implementación del incremento 1s
1.3.7) …Implementación del incremento 1s
1.3.8) Entrega 2
1.3.9) …Implementación del incremento 1s
1.3.10) …Implementación del incremento 1s
1.3.11) …Implementación del incremento 1s
1.3.12) …Implementación del incremento 1s
1.3.13) Entrega 3
1.3.14) …Implementación del incremento 1s
1.3.15) …Implementación del incremento 1s
1.3.16) …Implementación del incremento 1s
1.3.17) Entrega 4
1.4) Pruebas unitarias y de integración 13s
1.4.1) Pruebas del incremento 1 1s
1.4.2) Pruebas del incremento 2 1s
1.4.3) Pruebas del incremento 3 1s
1.4.4) Pruebas del incremento 4 1s
1.4.5) Pruebas del incremento 5 1s
1.4.6) Pruebas del incremento 6 1s
1.4.7) Pruebas del incremento 7 1s
1.4.8) Pruebas del incremento 8 1s
1.4.9) Pruebas del incremento 9 1s
1.4.10) Pruebas del incremento 10 1s
1.4.11) Pruebas del incremento 11 1s
1.4.12) Pruebas del incremento 12 1s
1.4.13) Pruebas del incremento 13 1s
1.5) Pruebas de sistema 1s
1.6) Implantación 1s
1.7) Formación 2s
1.8) Documentación 14s 1d 5h
Tarea Esfuerzo jun 2009 jul 2009 ago 2009 sep 2009 oct 2009
sábado 19 de diciembre de 2009
Planificación
1) Desarrollo del proyecto 56s 1d 5h
1.1) Análisis 3s 1d
1.1.1) Análisis de requisitos 1s
1.1.2) Especificación de requisitos 3d
1.1.3) Análisis de subsistemas 4d
1.1.4) Análisis de clases 1d
1.1.5) Análisis de interfaces de usuario 1d
1.1.6) …Especificación del plan de 2d
1.2) Diseño 8s 4d
1.2.1) Estudio general de diseño 3d
1.2.2) Diseño del incremento 1 3d
1.2.3) Diseño del incremento 2 3d
1.2.4) Diseño del incremento 3 3d
1.2.5) Diseño del incremento 4 3d
1.2.6) Diseño del incremento 5 3d
1.2.7) Diseño del incremento 6 3d
1.2.8) Diseño del incremento 7 3d
1.2.9) Diseño del incremento 8 3d
1.2.10) Diseño del incremento 9 3d
1.2.11) Diseño del incremento 10 1s
1.2.12) Diseño del incremento 11 3d
1.2.13) Diseño del incremento 12 3d
1.2.14) Diseño del incremento 13 3d
1.3) Implementación 13s
1.3.1) …Implementación del incremento 1s
1.3.2) …Implementación del incremento 1s
1.3.3) …Implementación del incremento 1s
1.3.4) Entrega 1
1.3.5) …Implementación del incremento 1s
1.3.6) …Implementación del incremento 1s
1.3.7) …Implementación del incremento 1s
1.3.8) Entrega 2
1.3.9) …Implementación del incremento 1s
1.3.10) …Implementación del incremento 1s
1.3.11) …Implementación del incremento 1s
1.3.12) …Implementación del incremento 1s
1.3.13) Entrega 3
1.3.14) …Implementación del incremento 1s
1.3.15) …Implementación del incremento 1s
1.3.16) …Implementación del incremento 1s
1.3.17) Entrega 4
1.4) Pruebas unitarias y de integración 13s
1.4.1) Pruebas del incremento 1 1s
1.4.2) Pruebas del incremento 2 1s
1.4.3) Pruebas del incremento 3 1s
1.4.4) Pruebas del incremento 4 1s
1.4.5) Pruebas del incremento 5 1s
1.4.6) Pruebas del incremento 6 1s
1.4.7) Pruebas del incremento 7 1s
1.4.8) Pruebas del incremento 8 1s
1.4.9) Pruebas del incremento 9 1s
1.4.10) Pruebas del incremento 10 1s
1.4.11) Pruebas del incremento 11 1s
1.4.12) Pruebas del incremento 12 1s
1.4.13) Pruebas del incremento 13 1s
1.5) Pruebas de sistema 1s
1.6) Implantación 1s
1.7) Formación 2s
1.8) Documentación 14s 1d 5h
Tarea Esfuerzo jun 2009 jul 2009 ago 2009 sep 2009 oct 2009
sábado 19 de diciembre de 2009
Diseño
Importancia de la modularidad para la visualización de documentos.
Conseguido mediante el uso de gemas.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Diseño modular
Events
Slideshare
Youtube
Componentes
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Diseño modular
Events
SlideShare
Youtube
Componentes
Podcast
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Convenio de las gemas
+ <<static>> parseable?(document):boolean+ to_html():XMLMarkup:Builder+ method_missing(sym, params)
- document: DocumentYoutubeDocument
method_missing hace que todas los métodos no redefinidos en
esta decoración se deleguen en el objeto document
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
¿Y las recomendaciones?
Se trata de una parte primordial de la aplicación.
Debe ser lo suficientemente flexible para poder recomendar cualquier objeto a otro objeto cualquiera.
Debe ser también lo suficientemente flexible para poder cambiar los datos con los que hacer las recomendaciones.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Recomendaciones
Se necesita tal flexibilidad que se desarrolla como plugin.
Este plugin permitirá que cualquier objeto de modelo pueda recibir recomendaciones de cualquier otro objeto a partir de las valoraciones que indique.
Uso de azúcar sintáctico.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Recomendaciones: Azúcar sintáctico
class User recommend :documents do |user| #código para recopilar las valoraciones #como un hash {documento => valor}
endend
añade a las instancias de User los métodos recommend_documents y similar_users
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Conclusiones
El desarrollo guiado por pruebas es una opción realmente buena de desarrollar software.
El uso de repositorios de código y servidores de integración continua son de gran ayuda.
Los lenguajes de alto nivel permiten una gran mejora de la velocidad de desarrollo.
Introducción > Teóricamente > Diseño > Conclusiones > Demostración
sábado 19 de diciembre de 2009
Ampliaciones
Añadir soporte a más visualizaciones.
Creación de grupos que puedan figurar como autores.
Cambio de paradigma de recogida de la información para las recomendaciones.
sábado 19 de diciembre de 2009
Autoría de las fotos
http://www.flickr.com/photos/24183489@N00/91682524
http://www.flickr.com/photos/49503019876@N01/1659321885
http://www.flickr.com/photos/22406241@N00/127707517
http://www.flickr.com/photos/49462908@N00/4012030328
sábado 19 de diciembre de 2009