Ponencias de la Conferencia Rails 2007
La Conferencia Rails 2007 dió cabida a 39 ponencias. A continuación tenéis un resumen de cada una:
Plenaria: 1 año después
Analizaremos la situación de Ruby on Rails al cumplirse un año de la celebración de la primera Conferencia Rails.
¿Qué ha pasado durante este año? ¿Qué hemos aprendido? ¿Qué perspectivas nos ofrece Rails para el año que viene?
JRuby on Rails: Agilidad en la empresa
El desarrollo Web nunca ha sido más fácil que con Ruby on Rails. El código generado es muy pequeño y limpio comparado con otros frameworks Web. Los programadores de Ruby son más productivos que los de otras plataformas y lo mejor de todo, está escrito en el potente y elegante lenguaje de programación Ruby. Ahora Rails está disponible sobre plataforma Java. JRuby on Rails proporciona la agilidad de Rails sobre servidores y aplicaciones Java.
Esta presentación expone como JRuby on Rails permite combinar lo mejor de los dos mundos, desarrollar con Rails y lenguaje Ruby y aprovechar toda la innovación de la máquina virtual y plataforma Java en el mundo de las aplicaciones empresariales durante más de 10 años.
APIs de Identidad y Rails
Introducción en el mundo de las APIs más populares de la red como Flickr, Last.fm/Audiscrobbler o GoogleMaps y a diferentes funcionalidades que facilitará la vida a tus usuarios web como OpenID y Gravatar.
Proyectos de bajo coste con limitaciones severas de tiempo y recursos
Existen aplicaciones cuyo desarrollo se plantea con una limitación de tiempo y recursos severa. Rails nos ayuda a realizar estos desarrollos de un modo rentable y manteniendo la capacidad de enfrentarse a los cambios, mejoras y mantenimiento sin volverse loco. Se mostrán casos reales de este tipo de proyectos.
Rails desde el código
En esta charla bajaremos un poco a las entrañas de Rails. A través de fragmentos seleccionados de código fuente echaremos un vistazo a la implementacion de aspectos importantes del framework como la recarga de clases o el flujo interno de una peticion. Por el camino entenderemos los idiomas avanzados de Ruby en los que Rails basa su magia.
Action Script y MXML con Rails => Rich Internet Application (RIA)
Las aplicaciones construídas en Flex 2 de Adobe están escritas en lenguaje MXML (basado en sintaxis XML) y ActionScript 3 (basado en Scripts con finalidad multimedia extremadamente poderosos). Las aplicaciones Flex son compiladas a Flash movies (archivos *.SWF) y pueden correr en cualquier explorador web, con gran contenido visual. Flex en aplicaciones RIA significan la parte del Usuario. Ruby on Rails es el gestor de la Base de Datos, Seguridad y de la parte del Servidor en su totalidad.
Se tratarán los aspectos y detalles de la comunicación entre Flex y Rails abarcando: las solicitudes típicas (HTTP Services); una aplicación "puente" para accesos remotos llamado RubyAMF (escrito en Ruby para aplicaciones RIA) en los dos modos que puede funcionar: como Aplicación independiente y como Plugin; paginación de grandes cantidades de datos en Flex desde Rails sin usar FDS (Flex Data Services); configuración de un servidor para el mejor desempeño Flex/Rails y temas relacionados.
Atom Publishing Protocol, ruby y el API de 11870.com
Atom Publishing Protocol se está convirtiendo en un estándar para la publicación de contenidos a nivel de aplicación.
En esta charla se pretende dar una introducción a todas las posibilidades que atomPub ofrece, las herramientas que ruby dispone para interactuar con el protocolo y como testear si una implementación de atomPub es correcta.
11870.com ha desarrollado un API que permite la publicación y búsqueda de contenidos por aplicaciones de terceros. Veremos como esta implementación extiende atomPub y como interactuar con ella a través de la gema oos4ruby.
MOW: usando RoR para la interconexión de aplicaciones Web 2.0 con la red movil (IMS)
Se describirá la interconexión de aplicaciones de Internet web 2.0 con el mundo de los móviles y de aplicaciones basadas en el protocolo SIP y su inteconexión con la red IMS (Internet Multimedia System). Se describirá la arquitectura implementada, así como la experiencia de interconexión de mundos tan diferentes.
Diseño en la web: Contenido y continente
Nota importante
Si eres un diseñador que ha leído blogs sobre diseño durante los dos últimos años puede que todo te suene.
Objetivo
Introducir a los asistentes en el diseño racional de páginas web. Para ello nos apoyaremos en algunos principios de interacción y en librerías escritas en CSS y Ruby que nos harán nuestro trabajo más sencillo.
Descripción
Se hará una breve introducción al mundo del diseño de interacción y a la figura del diseñador web. Seguidamente abordaremos los
siguientes aspectos:
- Tecnología en capas (HTML/CSS/JS/Flash)
- Compatibilidad entre navegadores
- Semántica vs estilo
- Rejillas y tipografía
- Frameworks CSS y su utilidad
- Herramientas que proporciona Ruby
Al final de la ponencia el diseñador web podrá descubrir nuevas herramientas para su trabajo diario y el programador descubrirá un nuevo punto de vista.
Más allá del testing
Vale. Tests. Sabes que los necesitas, sabes que tienes que hacerlos. Pero, ¿por dónde empezar? ¿Los escribes cuando ya tengas la funcionalidad? ¿O mejor al reves? ¿Qué tal especificar el comportamiento de tu aplicacion en forma de tests?
Y, cuando tengas tus preciosos tests, ¿cómo sacar el mayor partido de ellos? ¿Cómo asegurarte de que ese pequeño cambio (que pasa sus propios tests, claro) no rompe nada mas de tu código? ¿Y cómo sabes que no te has olvidado de testear nada?
En esta ponencia hablaremos de TDD, BDD, Rspec, CruiseControl, Rcov, y alguna cosa mas. Que no son sino la respuesta a todas esas preguntas.
Caché en Rails
Cachear contenidos es una labor prácticamente imprescindible hoy en día para mantener sitios con un alto número de páginas vistas y cuyo contenido sea dinámico. Rails, como no podía ser de otra manera, ofrece mecanismos para introducir caché en las diferentes capas por las que transcurre la resolución de una petición.
En esta presentación se analizará cómo funciona, qué alternativas podemos encontrar, cómo testearla y, además, se propondrán mejoras, como el "versionado" de la misma.
BDD y rSpec
Además del desarrollo guiado por tests, existe otro paradigma que va un paso más allá de éste, es el denominado desarrollo orientado a comportamiento, o BDD de sus siglas en inglés.
En esta ponencia describiremos esta forma de desarrollar y las ventajas que comporta. También daremos un repaso a las herramientas que se utilizan habitualmente como apoyo de estas técnicas.
Seguridad web en aplicaciones Rails
En la charla daremos un repaso a la seguridad web en general y algunas de las vulnerabilidades más comunes: Cross Site Scripting, SQL Injections, Session Hijacking, Cross Site Request Forgeries...
Trataremos de comprender estas vulnerabilidades a través de ejemplos para así poder ver cómo evitarlas.
En la charla además iremos comentando las distintas herramientas que proporciona Rails para evitar este tipo de vulnerabilidades.
Escalabilidad en RAILS y las cosas de las que nadie se atreve a hablar
Arquitecturas y configuraciones tipicas de un proyecto Rails.
-Utilizacion de nginx para servir contenido estatico.
-Mongrel y EventMachine.
-Upload de imagenes multithreaded con mongrel, attatchment_fu
-Optimizaciones de activerecord, (hacks y uso de active_record_context plugin)
-Creacion te caches y expiracion pasiva. Demonios para control de cache.
-Configuracion y monitorizacion de un servidor de produccion. (monit, munin tools)
RoR puede también hablar: Interface de voz con Rails
Las principales aplicaciones desarrolladas actualmente con Rails son con inteface Web. Sin embargo en el propio diseño MVC se prevé la posibilidad de tener otras intefaces (views) alternativas usando la misma funcionalidad principal desde los modelos y los controladores.
En la charla, después de una introducción práctica a la tecnología VoIP usando la centralita por software Asterisk, se mostrarán dos de las principales alternativas de integración entre tecnología VoIP y RoR: adhearsion y telegraph.
Finalmente se demostrará el uso de estas tecnologías en un proyecto concreto. Partiendo de una aplicación Web mostraremos como añadir la posibilidad de consultar por teléfono las notas y faltas de un centro de Educación secundaria.
Metaprogramación: programas que escriben programas
Rails es el entorno que conocemos gracias, entre otras cosas, a un uso intensivo de la metaprogramación. La metaprogramación es una técnica consistente, como su nombre indica, en escribir "programas que escriban programas", y Ruby, gracias a su carácter absolutamente dinámico, tiene un magnífico soporte para ella.
En esta ponencia se hará una introducción a esta técnica, se discutirán sus ventajas, y se mostrará, a través de ejemplos, como traer el "toque mágico" que Rails como framework tiene a nuestras propias aplicaciones, gracias a la metaprogramación.
Keynote: mesa redonda sobre frameworks
Expertos en los principales frameworks compararán:
* Rails (ruby)
* Django (python) - Marcos Sánchez Provencio
* Struts2 (Java) - Daniel Ortega Segura
Plenaria: mesa redonda de empresas
Representantes de diferentes empresas analizarán la situación actual y futura de Ruby on Rails.
Programa en Rails como si jugases con Lego
Rails trae de fábrica unos cuantos módulos muy interesantes para cualquier desarrollador web. Sin embargo, mucha de la funcionalidad que conseguimos en nuestras aplicaciones -como la autenticación o la caché, por ejemplo- la obtenemos usando plug-ins de terceros.
En esta charla aprenderemos cómo funcionan los plug-ins de Rails y cómo podemos crear nuestros propios plug-ins bien para conseguir código más modular y reusable, o bien para ponerlos a disposición de la comunidad y contribuir a que el desarrollo con Rails sea todavía más ágil.
Durante la charla se verá la arquitectura general de los plug-ins en Rails y cómo incluir controladores, vistas, modelos, tareas y librerías en tus plugins, además de las mejores prácticas para crear un plug-in instalable de forma sencilla.
Web Services en Ruby On Rails: las APIs de movilidad de OpenMovilForum
Radiografía de un proyecto realizado en ROR que hace uso de las APIs abiertas de OpenMovilForum de envío y recepción de SMSs y otros web services de terceros para dotar de funcionalidad a una web.
Se explicará cómo usar Rails para realizar web services y hacer uso de APIs de terceros, además de proveer la funcionalidad vía web y móvil.
Integración de Rails en el escritorio con Slingshot
En esta charla se presentará Slingshot, la alternativa opensource propuesta por Joyent a los recientes desarrollos de Microsoft y Adobe para integrar aplicaciones web en el escritorio usando Ruby on Rails.
A lo largo de la presentacion se ejecutarán los cambios necesaros en el entorno y el código de una aplicación Rails estándar hasta conseguir ejecutarla como aplicación nativa en el sistema operativo escogido (OS X) y sincronizar sus datos con la versión web de la misma.
Caso de estudio: MTV.es on Rails
MTV es con toda seguridad una de las cadenas musicales de más tradición e influencia a nivel mundial. En este caso MTV España ha migrado su website a rails. Con este nuevo desarrollo MTV.es busca consolidar una comunidad de usuarios alrededor del mundo de la música.
Por nuestra parte esto ha supuesto una experiencia de desarrollo estupenda que queremos compartir.
Ponentes: Álvaro Ortiz y Manuel Muñoz
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
En esta charla me gustaría mostrar como podemos utilizar la inteligencia artificial en ruby on rails para optimizar automáticamente la publicidad de una aplicación. Se mostrará como usar fácilmente algoritmos genéticos ya implementados en Ruby, que irán probando las mejores combinaciones de aspecto y posición de los anuncios. Estas combinaciones evolucionarán hacia la que maximiza los beneficios.
Uno de los objetivos de la charla es mostrar que podemos innovar y crear aplicaciones RoR con mayor valor añadido utilizando librerías de inteligencia artificial ya implementadas en Ruby.
Caso de estudio: Rails en la microempresa
La idea es hablar de varios de los proyectos (pequeños comparados con otros que se presentan en esta conferencia) que hemos hecho en Rails y porqué Rails los ha hecho posibles en una microempresa sin capital inicial y con los recursos muy justos.
Ejemplos:
- Gestores de contenidos simples pero específicos, en los que adaptar un programa libre ya existente sería más trabajo que hacerlo desde cero en Rails.
- Aplicaciones de gestión interna
- Proyectos propios sin cliente, es decir sin dinero a corto plazo.
Caso de estudio: Tomatime.com
Presentación del proyecto Tomatime.com, una web donde los usuarios pueden regalar su tiempo a sus amigos y familiares invintándolos a comer, ir al cine, tomar unas cervezas,....
Caso de estudio: Rails en su aspecto social en Chiapas, México.
Rails está detonando una nueva manera de trabajar, desde que es software libre, además de haberse convertido hoy en el más poderoso y novedoso del mercado del desarrolo de software web en el mundo. Por otro lado, Chiapas es de los estados menos desarrollados en México, que a su vez es un país del tercer mundo. Estos dos panoramas combinados ofrecen a los jóvenes de Chiapas con talento en informática, en primer lugar, que no emigren, luego, que generen ingresos para sus familias y en general un mayor bienestar social en torno a ellos.
Esta parte "noble" de Rails debería propagarse en las mismas regiones (con tendencia a la pobreza) a fin de restablecer el origen de las personas y generar negocios/ingresos localmente.
Caso de estudio: unvlog.com
Coincidiendo con la Conferencia Rails 2007 lanzaremos unvlog.com, un sitio para publicar vídeos de manera fácil hecho en Rails. Nos gustaría hablar de los aspectos técnicos de su desarrollo
La internacionalización sí es posible
Aunque Rails no tiene soporte incorporado para la internacionalización, sí hay muchas opciones para abrir las puertas de tu aplicación a audiencias más grandes. Lo difícil es decidir como, y saber cuales son las mejores opciones según el tipo de aplicación y necesidades.
En está charla, propondré soluciones (y no quejas) para la localización de aplicaciones Rails, incluyendo las decisiones que hay que tomar en el diseño y modelos de datos, y en que situaciones una solución vale más que otra.
También hablaré de mi propio plug-in "translate_columns" que permite el uso de traducciones de modelos de una forma transparente. Con ejemplos, demostraré como se puede añadir a la lógica de una aplicación soporte para contenidos multilingüe y como la potencia de Ruby y meta-programming permite una flexibilidad y productividad tremenda.
La localización no es fácil, pero con unos trucos no tiene porque ser una pesadilla y los beneficios son enormes.
Taller: cómo programar una araña web en Rails
Taller práctico introductorio en el que se explicará cómo construir desde cero una araña web que sea capaz de rastrear las URL indicadas, y extraer de ella sus contenidos (titulo, palabras clave, descripción) y enlaces a otras webs, usando librerías como hpricot, open-uri, expresiones regulares y automatización de tareas en el servidor.
Caso de estudio: Voranet
Voranet es el nombre de nuestro gestor de contenidos, desarrollado íntegramente en RoR. antes habíamos trabajado y desarrollado otros gestores en otras tecnologías, pero nunca habían funcionado tan bien como lo está haciendo este. La idea de esta charla es explicar en qué consiste el gestor, qué tiene de innovador, cómo se crea el negocio alrededor de él, mostrar algunos de los portales desarrollados y analizar el impacto de la elección tecnológica en los resultados.
Básicamente las ideas a comentar serían:
¿Qué es Voranet?
* Experiencias previas
* Características de Voranet
* Estructura modular
* Modelo de negocio
* Ventajes de la elección tecnológica
* Casos de éxito:
* SIMO Web 2.0
* YouliveK
* Fundetec
* Fundación Esplai
* ....
Casos de estudio: FACTURAgem
Nos gustaría contar como ha sido el proceso de desarrollo, contar la aplicación y como nos ha ayudado que sea Rails.
Contribuir a Rails
La charla tratará sobre el proceso necesario para aportar código a Rails y las distintas maneras en que se puede contribuir al proyecto y formar parte de la comunidad.
Taller: cómo programar un blog (REST) en 30 minutos
Este taller práctico está pensado para aquellos que han oído hablar de Rails y quieren ver su potencia en acción. Se hará una breve introducción a Rails, al patrón de arquitectura MVC y a REST. A continuación se programará un sencillo blog siguiendo la arquitectura REST.
Caso de estudio: Tractis, un enfoque técnico
¿Cómo se puede llegar a negociar contratos y firmarlos con un DNI electrónico desde un navegador? En esta charla daremos un repaso a algunos de los detalles técnicos sobre la plataforma.
Casos de estudio: Gestión de proyectos para ONGs con RoR
Llevamos un año y medio desarrollando/diseñando/implantando y dialogando un sistema de gestion proyectos para ONGs (tomando como banco de pruebas nuestra organizacion). La cuestion de esta exposicion seria: ¿Por que se eligio RoR? y ¿Que evaluacion podemos hacer tras un año y medio de desarrollo/diseño/implantacion/dialogo?
A primera vista deberia tratarse mas de una charla sobre metodologias de desarrollo. Pero -posiblemente- nuestra tesis es que la metodologia esta condicionada por la tecnologia, y es ahi donde intentaremos brevemente mostrar las conclusiones de nuestra experiencia que esta condicionada por: un desarrollo complejo (de requisitos amplios, crecientes e imprecisos), grupos de desarrollo pequeños, y tiempos intermitentes de desarrollo.
Rails against the machine
Cómo crear entornos virtuales clonables para el despliegue de aplicaciones Rails con Capistrano 2 y XEN.
En esta charla explicaremos como:
* Instalar Xen en Debian.
* Crear máquinas virtuales.
* Recetas de capistrano para la instalacion de la pila de Rails (NGINX + MONGREL + MYSQL+ Monitorizacion)
* Recetas de capistrano para el despliegue de una aplicación Rails desde un repositorio de código
ROA: Desplegando Arquitecturas Rest con RoR
Las arquitectura SOA basadas en la torre de WS-* se han demostrado demasiado complejas, por lo que los enfoques basados en REST parece la única solución distribuida y escalable para aplicaciones en Internet. RoR ha apostado por el acceso a sus datos de forma facil y transparente usado REST. Se realizará una introducción a los conceptos básicos así como su realización desde RoR.
Casos de estudio: BeRuby.com
La web que te paga por navegar.
Nos gustaria contar el proyecto con la siguiente agenda:
¿Que es BeRuby.com?
¿Como se eligió Rails?
¿Que impacto hemos visto en el desarrollo?
Algunas carácteristicas de la aplicación.
GURUnote sobre Rails 2.0
Obie Fernandez nos hablará de las novedades de Rails 2.0