23 Noviembre, 2007
Introducción <ul><li>Lanzamos en España a finales de julio y en el Reino Unido a principios de octubre </li></ul><ul><ul><...
¿Qué es  BeRuby.com ? Remunera al usuario por su navegar Remunera al usuario por invitar a sus amigos Portal o página de i...
BeRuby   paga al usuario por navegar
BeRuby  paga al usuario por recomendar <ul><li>El usuario ganará dinero  no sólo por la actividad que él realiza  sino tam...
BeRuby  como portal o página de inicio
¿Cómo se eligió Rails? <ul><li>Precio </li></ul><ul><li>Tiempo </li></ul><ul><li>Concebido para lanzar casi en simultáneo ...
Desde un punto de vista de negocio, como cliente: <ul><li>Flexibilidad: cambio de marca, cambio en el orden de categorías,...
La aplicación: funcionalmente <ul><li>Personalización página </li></ul><ul><li>Gestión de tu red: envío invitaciones </li>...
El desarrollo <ul><li>Dos desarrolladores + 1 diseñador </li></ul><ul><li>Desarrollo iterativo </li></ul><ul><ul><li>Cambi...
Algunas característcas <ul><li>Aplicación multi-idioma </li></ul><ul><li>Aplicación multi-pais </li></ul><ul><ul><li>Cada ...
Arquitectura de producción <ul><li>2 servidores front </li></ul><ul><li>Varias aplicaciones: </li></ul><ul><ul><li>Una por...
plugins <ul><li>Action Mailer Layouts. Presentación de los mails </li></ul><ul><li>Active Merchant. Integración con PayPal...
Gemas <ul><li>Mechanize. Permite el crawling de páginas web </li></ul><ul><li>FasterCSV. Parseo de ficheros en formato CSV...
Ejemplos de bondad <ul><li>No ha petado </li></ul><ul><li>Los bugs han sido fáciles de corregir </li></ul><ul><ul><li>Hora...
Rake Stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name  | Lines |  LOC | Classes | M...
Los críticos de Ruby on Rails siempre cuestionan la escalabilidad, os agradecería que nos ayudáseis a demostrar que esto n...
Upcoming SlideShare
Loading in …5
×

Presentación de Be Ruby en la conferencia Rails

1,824 views

Published on

Project description and some details on the development.

Published in: Business
  • Be the first to comment

  • Be the first to like this

Presentación de Be Ruby en la conferencia Rails

  1. 1. 23 Noviembre, 2007
  2. 2. Introducción <ul><li>Lanzamos en España a finales de julio y en el Reino Unido a principios de octubre </li></ul><ul><ul><li>Esperamos lanzar en USA, Alemania y Francia antes de finales de año </li></ul></ul><ul><li>Principales socios en el proyecto: </li></ul><ul><ul><li>Agustín Cuenca de ASPgems </li></ul></ul><ul><ul><li>Miguel Acosta y Samuel Arenas de ASK.com </li></ul></ul><ul><ul><li>Socios en cada uno de los países donde vamos a lanzar: Reino Unido, Francia, Alemania y Estados Unidos </li></ul></ul>
  3. 3. ¿Qué es BeRuby.com ? Remunera al usuario por su navegar Remunera al usuario por invitar a sus amigos Portal o página de inicio
  4. 4. BeRuby paga al usuario por navegar
  5. 5. BeRuby paga al usuario por recomendar <ul><li>El usuario ganará dinero no sólo por la actividad que él realiza sino también por la actividad que realicen aquellas personas a las que invite a formar parte de su red </li></ul>
  6. 6. BeRuby como portal o página de inicio
  7. 7. ¿Cómo se eligió Rails? <ul><li>Precio </li></ul><ul><li>Tiempo </li></ul><ul><li>Concebido para lanzar casi en simultáneo en varios países </li></ul><ul><li>Agustín como socio (no option!)‏ </li></ul>
  8. 8. Desde un punto de vista de negocio, como cliente: <ul><li>Flexibilidad: cambio de marca, cambio en el orden de categorías, base de datos, etc. </li></ul><ul><li>Poder que se da a no programadores (capacidad para realizar pequeñas modificaciones en la plataforma)‏ </li></ul><ul><li>Plataforma multi-idioma (de forma rápida)‏ </li></ul><ul><li>Pocos errores de bucle… de hecho ninguno </li></ul>
  9. 9. La aplicación: funcionalmente <ul><li>Personalización página </li></ul><ul><li>Gestión de tu red: envío invitaciones </li></ul><ul><li>Gestión de servicios </li></ul><ul><li>Gestión reparto ingresos </li></ul><ul><li>Conexión proveedores </li></ul><ul><li>Conexión con Paypal </li></ul><ul><li>Backoffice de administración </li></ul><ul><ul><li>Carga de informes </li></ul></ul><ul><ul><li>Gestión usuarios, servicios y proveedores </li></ul></ul>
  10. 10. El desarrollo <ul><li>Dos desarrolladores + 1 diseñador </li></ul><ul><li>Desarrollo iterativo </li></ul><ul><ul><li>Cambio continuo de especificaciones </li></ul></ul><ul><li>Algunas decisiones críticas </li></ul><ul><ul><li>Una aplicación por pais </li></ul></ul>
  11. 11. Algunas característcas <ul><li>Aplicación multi-idioma </li></ul><ul><li>Aplicación multi-pais </li></ul><ul><ul><li>Cada País una BBDD </li></ul></ul><ul><ul><li>Cada País una instancia en ejecución </li></ul></ul><ul><li>Escalabilidad por la arquitectura </li></ul><ul><li>Redundancia con simplicidad </li></ul>
  12. 12. Arquitectura de producción <ul><li>2 servidores front </li></ul><ul><li>Varias aplicaciones: </li></ul><ul><ul><li>Una por cada pais. </li></ul></ul><ul><li>Todo con capistrano </li></ul><ul><li>2 servidores bases de datos con fail over </li></ul><ul><ul><li>Memcache </li></ul></ul><ul><li>Balanceador de carga </li></ul><ul><ul><li>La relevancía del share-nothing. </li></ul></ul>Web 1 BBDD 1 BBDD 2 Web 2 Firewall y balanceador
  13. 13. plugins <ul><li>Action Mailer Layouts. Presentación de los mails </li></ul><ul><li>Active Merchant. Integración con PayPal </li></ul><ul><li>Acts As Authenticated. Login </li></ul><ul><li>Acts As Paranoid. Borrado Lógico de Registros </li></ul><ul><li>Calendar Date Select. Helper para selección de fechas </li></ul><ul><li>Content. Plugin interno para gestión de páginas y fragmentos de HTML </li></ul><ul><li>FckEditor. Editor gráfico de HTML </li></ul><ul><li>Foreign Key Migrations. Creación automática de Foreign Keys </li></ul><ul><li>Gems. Permite empaquetar las gemas como plugins (facilita el deployment)‏ </li></ul><ul><li>Google Analytics </li></ul><ul><li>ParseExcel. Tratamiento de ficheros Excel </li></ul><ul><li>PseudoCursors. Permite simulación de cursores sobre ActiveRecord </li></ul><ul><li>responds_to_parent. Facilita la subida de ficheros desde AJAX. </li></ul><ul><li>El multilenguaje se consigue mediante una librería interna similar al plugin Gibberish (estábamos en pleno desarrollo cuando se publicó Gibberish). Soportamos modificaciones en caliente de los ficheros de literales. </li></ul>
  14. 14. Gemas <ul><li>Mechanize. Permite el crawling de páginas web </li></ul><ul><li>FasterCSV. Parseo de ficheros en formato CSV </li></ul><ul><li>MemCached. Conexión con memcached. Extendida con una librería propia </li></ul><ul><li>Contacts. Importación de contactos de yahoo, msn y gmail </li></ul><ul><li>HtmlEntities. Traducción de entidades html por su código (á == &aacute;)‏ </li></ul>
  15. 15. Ejemplos de bondad <ul><li>No ha petado </li></ul><ul><li>Los bugs han sido fáciles de corregir </li></ul><ul><ul><li>Horas </li></ul></ul><ul><li>Cambios en requerimientos </li></ul><ul><ul><li>Servicios co-branded </li></ul></ul><ul><ul><li>Cambio estrategias de reparto </li></ul></ul><ul><li>Flexibilidad de negocio sin cambios de software. </li></ul>
  16. 16. Rake Stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 2943 | 2152 | 20 | 210 | 10 | 8 | | Helpers | 669 | 533 | 0 | 110 | 0 | 2 | | Models | 2555 | 1775 | 28 | 165 | 5 | 8 | | Libraries | 1808 | 1394 | 25 | 141 | 5 | 7 | | Components | 0 | 0 | 0 | 0 | 0 | 0 | | Integration tests | 0 | 0 | 0 | 0 | 0 | 0 | | Functional tests | 1025 | 819 | 30 | 108 | 3 | 5 | | Unit tests | 531 | 403 | 14 | 50 | 3 | 6 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 9531 | 7076 | 117 | 784 | 6 | 7 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 5854 Test LOC: 1222 Code to Test Ratio: 1:0.2
  17. 17. Los críticos de Ruby on Rails siempre cuestionan la escalabilidad, os agradecería que nos ayudáseis a demostrar que esto no es una preocupación.... Registraos en BeRuby.com GRACIAS!! [email_address] [email_address]

×