Ponencias

Viernes 24 (ver sábado)

15:00 - 15:45

Sala 2

Introducción a Rails

Ponente: Daniel Yucra ver ficha ponente

Ruby On Rails es una plataforma para el desarrollo web basada en el lenguaje Ruby. Es un framework que combina pragmatismo, innovación y facilidad de uso para el desarrollo de aplicaciones con base de datos.

En este tutorial explicaremos qué es Rails, cuál es su filosofía de trabajo, cómo es su entorno de desarrollo y sobre todo, la forma de ponerlo en marcha mediante aplicaciones prácticas. Además, mostraremos sus ventajas competitivas frente a otros framework basadas en software libre.

Descargar ponencia

15:00 - 15:45

Sala principal

Soluciones de Internacionalización con Rails

Ponentes: David Barral y Asís García ver ficha ponente

Se analizarán las alternativas actuales para internacionalizar aplicaciones Rails: Globalize, Localize, Gloc, etc, centrándose en su uso y arquitectura: internacionalización de la capa modelo, helpers para la vista, tratamiento de datos, etc. Se analizarán sus ventajas e inconvenientes y se comentarán algunas experiencias en proyectos propios y ajenos. A partir de toda esta información se propondrán mejoras a las alternativas existentes, justificando qué ventajas aportan e indicando cuáles serían su puntos débiles.

Descargar ponencia

15:00 - 15:45

Sala 3

Observatorio de los Medios

Ponente: Svet Ivantchev ver ficha ponente

El "Observatorio de los Medios" de Mugak (http://medios.mugak.eu) es un ejemplo de cómo integrar información y servicios de terceros, con experiencia propia, para ofrecer un nuevo servicio con un valor añadido al estilo Web 2.0.

El contenido de la web es producido por los principales periódicos nacionales, que se rastrean cada día en búsqueda de noticias relacionados con la actividad de nuestro cliente (http:// www.mugak.eu/ , http://www.mugak.eu/gunea/obsmedios/ ). Para acelerar el proceso del "spider" se usan máquinas virtuales del servicio de Amazon Elastic Compute Cloud (Amazon EC2).

Posteriormente los datos son clasificados y analizados manualmente a través de una aplicación web desarrollada con Ruby on Rails. El resultado de la integración de todos estos componentes, es una web que permite a los usuarios informarse sobre el tema de la inmigración y comparar objetivamente el trato que los diferentes medios dan a dicho tema.

En la presentación se comentarán los principales retos del desarrollo, la integración con Amazon EC2 y la experiencia de un desarrollo ágil en estrecha colaboración entre el cliente y el proveedor. Por último se comentará la experiencia de creación de un servicio parcialmente automatizado y parcialmente manual al estilo "mechanical turk".

15:45 - 16:30

Sala principal

Internacionalización con Ruby-Gettext y Rails

Ponente: Juan S. Pérez Herrero ver ficha ponente

Introducción a gettext
Introducción
Ficheros po y mo
Dominios
Traducción Ruby-gettext
Instalación
Características
Línea de comandos Ruby-gettext y Rails
Configuración del entorno
Tareas de rake
Trabajando con el locale en entorno web
Usando el método '_': plurales y polisemia
Vistas, plantillas localizadas y controladores
Hacks: Redefinición de métodos: distance_of_time_in_words y ctionmailer
Entornos colaborativos con svn, gettext y pootle

15:45 - 16:30

Sala 2

Seguridad en Aplicaciones web

Ponente: Felipe Talavera Armero ver ficha ponente

Buenas prácticas de programación orientada a la seguridad de la aplicación web. Se verán los ataques y errores más comunes que se suelen cometer en el desarrollo de este tipo de aplicaciones, como por ejemplo: SQL injection, XSS (Cross site scritping), robos de session, vulnerabilidades en la lógica de la aplicación, etc.

Todos los ataques ilustrados con demostraciones prácticas, teoría del ataque y manera de evitarlos.

Descargar ponencia y códigos de ejemplo

15:45 - 16:30

Sala 3

Case Study: Comunidad de Usuarios de la Feria Real de Algeciras

Ponente: Carlos Paramio ver ficha ponente

El objetivo de este proyecto fue desarrollar una comunidad online para promover la Feria Real de Algeciras. Básicamente, se pretendían los siguientes objetivos: • Orientar a los visitantes acerca de la situación de las casetas de feria. • Ofrecer información sobre las actividades realizadas por cada caseta durante los días de feria. • Disponer de un sistema de evaluación de las casetas para premiar a las mejores, algo especialmente interesante para la gente de fuera que visitaba la feria y desconocía el tipo de ambiente que encontraría en cada caseta. • Recopilar las opiniones de los visitantes a la feria, como complemento al sistema de puntuación de las casetas. • Contener un repositorio de fotografías, donde los visitantes pudieran colocar las fotos realizadas durante la feria y compartirlas así con sus familiares y amigos. • Disponer de un chat comunitario para que los visitantes pudieran citarse para acudir a la feria, o conocerse, o charlar sobre algún tema de interés común. • Servir de plataforma publicitaria a las empresas de la comarca, como complemento a la revista de feria. • Pasar de la idea a la implementación en un mes de tiempo.

Descargar ponencia

16:45 - 17:30

Sala principal

Optimización y desnormalización del modelo de datos en Active Record

Ponente: Fernando Blat ver ficha ponente

ActiveRecord está pensado para trabajar con modelos de datos normalizados, porque evitan una serie de problemas, como la inconsistencia de datos al no haber repetición de los mismos.

Sin embargo, cuando estamos trabajando con grandes volúmenes de datos y modelos que mantienen relaciones complejas entre sí, se hace necesario desnormalizar en aras de la velocidad y el rendimiento.

En esta presentación hablaremos de cómo trabajar con modelos desnormalizados y luchar por el rendimiento con cachés, observers y tablas temporales. Y también comentaremos un caso real: el sistema de tags de La Coctelera.

Descargar ponencia

16:45 - 17:30

Sala 2

Tareas en background con RoR y BackgrounDRb

Ponente: Sergio Espeja ver ficha ponente

La ejecución de código en Ruby on Rails sigue un ciclo petición/respuesta (request/response) perfecto para la mayoría de escenarios de una aplicación web. Pero ¿qué pasa cuando queremos realizar procesos no interactivos como actualizaciones masivas de datos, procesos de cálculo largos, etc.? En estos casos, mantener una petición a la espera de una respuesta durante periodos largos de tiempo, no es una buena solución.

Para ejecutar procesos de larga duración en RoR existen varias opciones, entre ellas BackgrounDRb, un pequeño framework que permite extraer tareas del ciclo petición/respuesta de RoR. Pudiéndose instalar como plugin, permite fácilmente la comunicación bidireccional entre la aplicación y las tareas en background.

La ponencia comenzará con una exposición del problema y mostrará por encima los posibles métodos para solucionarlo. Posteriormente se explicará en detalle BackgrounDRb y cómo utilizarlo. Para finalizar, se realizará una demostración con RoR y BackgrounDRb de cómo, en 5 minutos, podemos programar desde cero un proceso en background controlado desde la aplicación, que muestre una barra con el estado del proceso.

Descargar ponencia
Descargar código fuente

16:45 - 17:30

Sala 3

Desarrollo de Juegos con RoR

Ponente: Daniel Escribano ver ficha ponente

La charla será una guía completa sobre como desarrollar un juego en Ruby on Rails, incluyendo las posibilidades infinitas de ampliación y modificación. Se partirá del punto inicial, es decir, desde su inicio en papel hasta su colocación en el servidor. A su vez se incluirá una demostración del mismo juego realizado en PHP para poder valorar las diferencias sobre la versión RoR

17:30 - 18:15

Sala principal

Rails desde el código

Ponente: Xavier Noria ver ficha ponente

En esta charla bajaremos un poco a las entrañas de Rails. Veremos desde el código fuente cómo funcionan aspectos centrales del framework, tales como el arranque, el flujo de una petición, las extensiones core, la recarga de clases, etc

17:30 - 18:15

Sala 2

Ruby y las arquitecturas orientadas a servicios (SOA)

Ponente: Joaquín Salvachúa  ver ficha ponente

Las aplicaciones Web cada vez requieren conexiones con otras aplicaciones mediante diversos protocolos. De todos ellos destaca SOAP y XML-RPC. En esta presentación veremos qué soluciones presenta Ruby para la interconexión de este tipo de aplicaciones.

17:30 - 18:15

Sala 3

Desarrollo de Plataforma de Negociación Online: Tractis

Ponente: Manuel Santos ver ficha ponente

  1. Presentación de Tractis
  2. Arquitectura de Tractis
  3. Componentes de Tractis
  4. Plataforma de desarrollo y despliegue en Tractis (SVN, Trac, Capistrano, Backups, BBDD, Servidores).
  5. Soluciones tecnológicas a diversos problemas:
    - Plugins utilizados. Generators vs. Engines
    - I18n
    - Helpers de visualización
    - Editor WYSIWIG y conversión a XML con Tidy
  6. Futuro de Tractis y conclusiones

19:30 - 20:30

Sala principal

Sesión plenaria: La Coctelera

Ponente: Álvaro Ortiz y Fernando García Ramblas ver ficha ponente

La Coctelera es uno de los desarrollos basados en Rails más grandes de hispanoamérica. Es una plataforma de weblogs en español que cuenta actualmente con más de 45.000 usuarios y 10 millones de páginas vistas al mes. En esta conferencia plenaria, Álvaro y Fernando, los dos principales responsables del desarrollo, explicarán cómo surgió la idea, los inicios del proyecto y el desarrollo hasta hoy. Se revisarán los aspectos humanos y técnicos, la elección de Rails como framework de desarrollo y los resultados que se han obtenido. La exposición no pretende ser exclusivamente técnica, sino retratar un proyecto de las dimensiones de La Coctelera en toda su magnitud.

Sábado 25 (ver viernes)

15:00 - 15:45

Sala principal

Rails para vendedores

Ponente: Agustin Cuenca ver ficha ponente

La ponencia pretende ser una introducción a Rails para equipos comerciales, cuáles son los puntos de fuertes del entrono, lo débiles y como contestar a esas objeciones de los clientes.

15:00 - 15:45

Sala 2

Introducción a Ruby on Rails

Ponente: Felipe Talavera Armero ver ficha ponente

Breve repaso de la historia de Rails.
Introducción a la programación de aplicaciones web mediante ruby on rails, viendo los componentes básicos: Active Record, Active Controller, Active View, su funcionalidad, manera de uso y el lugar que ocupan dentro de la infraestructura de las aplicaciones.

15:00 - 15:45

Sala 3

Case Study: Concurso web

Ponente: Manuel Muñoz Solera ver ficha ponente

Desglose de una campaña web hecha en Flash y Rails mediante la cual puedes crear tus propios anuncios de televisión online simplemente subiendo una fotografía.

Se analizarán con ejemplos generalizados el uso de rmagick para el montaje de imágenes o cómo hacer uploads de archivos de cara a Rails a través de Flash 8.

15:45 - 16:30

Sala principal

Rails para maquetadores

Ponente: María Martínez ver ficha ponente

Rails orientado a la parte de front end o qué debe conocer un maquetador para trabajar con rails.

- conceptos básicos
- helpers
- partials
- RoR y javascript

Descargar ponencia

15:45 - 16:30

Sala 2

Ruby On Rails y SAP

Ponente: Pablo Sanchover ficha ponente

A través de la familia de Conectores SAP (SAP Connectors) (SAP Business Connector, SAP Java Connector, SAP connector for Microsoft .NET, SAP DCOM Connector, RFC Library ... ) ha sido posible la integración de diferentes aplicaciones y tecnologías con sistemas SAP. Dichos conectores permiten la interoperabilidad entre componentes SAP (desarrollados como programas ABAP o ABAP Objects) y componentes externos desarrollados con tecnologías diversas (Java, C++, MS Visual Basic, MS .NET, ...). Con la decidida apuesta de SAP por una orientación hacia una Arquitectura de Servicios Empresariales (ESA) y, a través de las nuevas versiones de mySAP Business Suite y SAP Netweaver, se abren también nuevas posibilidades de integración e inter-operabilidad a través de estándares abiertos, principalmente Web Services. La presente ponencia tiene como objeto ofrecer una introducción a dichas tecnologías de Integración, mostrando las posibilidades de acceder a dicha tecnología desde el lenguaje Ruby, tanto a través del "RFC Connector" (SAP::Rfc) así como el acceso de aplicaciones Ruby a "Servicios Empresariales" SAP a través de Web Services.

15:45 - 16:30

Sala 3

Algoritmo genético distribuido

Ponente: Juan Lupión ver ficha ponente

Ruby on Rails permite ir más allá de las aplicaciones web que son meros frontales a una base de datos. En este trabajo mostramos la validez de Ruby on Rails como banco de pruebas para llevar a cabo estudios sobre computación distribuida usando el navegador web como agente de procesamiento y una aplicación Rails como servidor, centrándonos en el paradigma de los algoritmos genéticos.

Se comentarán el conocido uso de invocaciones asíncronas XMLHttpRequest usando la librería Prototype (incluida con Ruby on Rails), la facilidad de mapeo de objetos Ruby a Javascript (y viceversa) empleando JSON y se realizará un breve estudio comparativo del rendimiento de la implementación Javascript bajo diferentes sistemas operativos y navegadores web.

16:45 - 17:30

Sala principal

Rails para programadores Java

Ponente: Juanjo Bazán  ver ficha ponente

La charla trata de mostrar a aquellos programadores Java que estén pensando en dar el salto a Rails, que el camino a recorrer es sencillo, mostrándoles cómo implementa RoR las funcionalidades con las que están acostumbrados a trabajar en sus proyectos con Java.

No sólo las mismas tareas (mapeos relaciones-objetos, MVC, manejo de XML,...) se realizan de manera más sencilla sino que al ser conceptualmente ambos lenguajes orientados a objetos, un buen programador Java ya tiene medio camino andado.

16:45 - 17:30

Sala 2

Rails y XML como herramienta de integración

Ponente: Javier Ramírez ver ficha ponente

A pesar de que para ciertos aspectos, se prefiere el uso de YAML sobre el XML en el desarrollo con Rails, es indudable que cuando se trata de integrar diferentes plataformas, el XML es la lingua-franca en la que debemos comunicarnos. Tanto Ruby como Rails proporcionan mecanismos que permiten generar y parsear XML de una manera sencilla. En esta charla veremos cómo usar plantillas rxml para la generación de documentos, cómo convertir automáticamente un objeto basado en un modelo rails en XML, cómo mapear XML a Objectos Ruby, y cómo trabajar con XML siguiendo los modelos DOM y SAX. Además, veremos una introducción a la arquitectura 'Representational State Transfer' (REST) Se trabajará sobre los componentes Builder, REXML y XmlSimple.

Descargar ponencia

16:45 - 17:30

Sala 3

Case Study: Desarrollo de una web de consulta bibliográfica

Ponente: Eli Kroumova ver ficha ponente

La Biblioteca Digital de Hegoa (http://biblioteca.hegoa.efaber.net/) es una web de consulta bibliográfica que desarrollamos para el Centro de documentación de Hegoa (http://www.hegoa.ehu.es/). Está en marcha desde el noviembre de 2005 con un feedback muy positivo de los usuarios.

La web está desarrollada usando una de las primeras versiones de Rails, la 0.14. Aunque por aquel entonces Rails no era lo que es ahora, usarlo nos permitió desarrollar una web tipo web2.0 muy fácil de usar. Hicimos el trabajo en estrecha colaboración con el cliente en el estilo del desarrollo ágil. Aprovechando las ventajas de AJAX y las librerías de Javascript incluidas en Rails conseguimos una consulta del fondo bibliográfico más interactiva y con notables mejoras en la experiencia del usuario.

En la charla comentaremos el proceso de desarrollo de la web, las ventajas de hacerla en Rails y las "moralejas" que sacamos para nosotros de este proyecto.

Descargar ponencia

17:30 - 18:15

Sala principal

Testing

Ponente: Jean-Michel Garnier ver ficha ponente

Introducción: extracto de http://en.wikipedia.org/wiki/The_Mythical_Man-Month , en 1975 la calidad en la ingeniera del software, a comparar con 2006 (nada ha cambiado!!!)
- Historia y Teoría de los tests: 10 min Que es Agile, xUnit, Integracion Continua, TDD?
- Practica: 20 min: Su implementación en Ruby on Rails 1. Capa de Persistencia: Model unit tests: fixtures 2. Capa de Controlador: tests funcionales 3. Capa de Presentación (Vista): selenium tests
- Preguntas

Descargar ponencia

17:30 - 18:15

Sala 2

Ruby Mola (y por qué)

Ponente: Sergio Gil ver ficha ponente

El título es "Ruby Mola (y por qué)", y surge de la constatación, a través de la lista y otros foros, de la enorme gente que aprende Rails, más que a la vez que Ruby, _antes_que_ Ruby, o incluso sin aprender Ruby (los más valientes). Eso, que no habla sino del magnífico trabajo de la gente de Rails (oiga, póngase a programar cualquier framework de Java sin saber Java), que disminuye la pendiente de la curva de aprendizaje, disminuye también la productividad de esos programadores, que desaprovechan al 90 y tantos por ciento un magnífico lenguaje.

La ponencia tratará de convencer a estos desarrolladores de lo interesante que es aprender un poco más de Ruby a través de ejemplos.

Descargar ponencia

19:30 - 20:30

Sala Principal

Sesión plenaria II: Q & A

Ponente: Panel de conferenciantes

Para cerrar la Conferencia Rails Hispana 2006, se realizará una sesión de preguntas y respuestas del público a los conferenciantes. Al inicio de la jornada se abrirá un mic (similar al utilizado para David Heinemeier) para que los asistentes puedan hacer preguntas abiertas. Un moderador leerá las preguntas y otorgará la palabra a los conferenciantes que quieran contestarla.