Lectura PFC Events

38
Events Autor: Pablo Rivera Conde Director: César Fernández Acebal Red social para compartir documentos y podcasts sábado 19 de diciembre de 2009

Transcript of 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

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

PDF

Youtube

Componentes

Introducción > Teóricamente > Diseño > Conclusiones > Demostración

sábado 19 de diciembre de 2009

Diseño modular

Events

SlideShare

PDF

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

Demostración

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