Title: Al principio Rails pareca una mala idea
1Al principioRails parecía una mala idea
2Esfuerzo
- Qué es ideas4all?
- Tomando decisiones
- Funcionalidad
- Prototipo
- La decisión
- Metodología
- La primera versión
- Arquitectura
- Cambios, cambios, cambios
3Cómo nació ideas4all
TENGO UNA IDEA
- Obviamente era mentira
- . Tenía miles!
4Cómo nació ideas4all
Think BIG!
To create the Best and Most Complete Internet
Service for the World of Ideas
- Tendencia a las redes sociales colaborativas
- Verticalización de redes sociales
- Necesidad de aflorar repositorio de ideas
- Democratización de las ideas
- Demanda de talento
5Por qué envía la gente sus ideas? Motivaciones
EGO, FAMA, RECONOCIMIENTO
DINERO
CAMBIAR LAS COSAS COTRIBUIR A LA COMUNIDAD
COMPARTIR
CONSEGUIR ALGO QUE NO ESTÁ EN EL MERCADO
TRASLADAR IDEAS
SOLIDARIDAD
COMPARTIR UNA EXPERIENCIA
6FuncionalidadConceptos básicos
- Ideas
- Problemas
- Usuarios
- Comentarios
- Votos
- Brain-Fu
- Asociación
- Colaboración
- Evolución
- Reporte de abuso
- Invitación / envío
7FuncionalidadRecuperación de información
- Tags (folksonomía)
- Categorías (taxonomía)
- Texto libre
- Mapas
- Organizadores
- Filtros
8FuncionalidadOtras funcionalidades
- Integración RSS (Blogs)
- Humor
- Concursos
- Contenido editorial
- Google Maps Mashup
9PrototipoJ2EE
- Integración de distintos productos
Free/OpenSource - Edición ideas Xwiki
- Foro Jforum
- Blog Pebble (blog)
- Buscador Lucene (buscador)
- Editores Fckeditor, TinyMCE
- Servicios externos
- GoogleAnalytics
- Googlemaps
10PrototipoJ2EE
- Problemas
- Necesidad de Flexibilidad
- Ideas4all es muy, muy ad-hoc
- Complejidad
- Proyecto de integración en Java
- Login único
- Modelo de datos
- Muchas modificaciones de los productos
- Velocidad
- Necesidad metodología
11Tenle miedo, mucho miedo
USEMOS RAILS!!!!
12Tenle miedo, mucho miedo
USEMOS RAILS!!!!
- Pero quién sabe Rails?
- Dinámico interpretado
- Mongrel monothread
13Tenle miedo, mucho miedo
USEMOS RAILS!!!!
Yo te lo Explico MELÓN!
- Pero quién sabe Rails?
- Dinámico interpretado
- Mongrel monothread
14Cada cosa en su sitioTalibanes, no
15Versión 1. (d2m)Concepto portal bancario
16Esfuerzo
- Equipo técnico
- Dos (2) desarrolladores
- Medio (1/2) diseñador
- Medio (1/2) administrador de sistemas
- Versión 1
- Dos meses
17Versión 2. (1.5m)Concepto CD-ROM
18Versión 3.x (2s)Concepto no reinventes, - )
- Menos es más
- Claridad
- Sencillez
19Cómo trabajamos?
- Desarrollo externalizado
- Apenas ha habido doc. especificaciones
- Gestión de funcionalidad a través de trac
- Separación tecnología y contenido
- Metodología iterativa
- Atención a los usuarios
- Prueba y error
- Mejora continua
20Backoffice de Administración
- Usuarios
- Problemas
- Ideas
- Estadísticas
- Contenido de combos
- Report Abuse
- Gestión de promociones
- Editor multiidioma
- Notificaciones
- Brain-fu
21Edición de contenidosInterfaz y web 1.0
Multiidioma
22Edición de contenidosInterfaz y web 1.0
Multiidioma
23Edición de etiquetasMultiidioma
24Arquitectura Un frontal de ideas4all
25ArquitecturaGemas y Plug-Ins
- Gems
- image_science
- feed-normalizer
- tlsmail
- memcache-client
- mysql
- mongrel
- mongrel_cluster
- Plug-Ins
- active_scaffold
- active_scaffold_list_filters
- acts_as_bookmarkable
- acts_as_commentable
- acts_as_feeder
- acts_as_list
- acts_as_paranoid
- acts_as_taggable_on_steroids
- acts_as_tree
- acts_as_versioned
- acts_as_voteable
- annotate_models
- attachment_fu
- auto_complete
- content
-
- exception_notification
- fckeditor
- foreign_key_migrations
- gibberish
- google_analytics
- masochism
- recaptcha
- redhillonrails_core
- responds_to_parent
- restful_authentication
- tkueue
- translate_columns
- ultrasphinx
- will_paginate
26Arquitectura
- Arquitectura share-nothing
- Balanceador
- Si cae una máquina, no cae el sistema
- Un mongrel para administración
- Dos pools de mongrels para usuarios
-
- Si una BD cae, pasamos a la otra.
27ArquitecturaDespliegue físico
28ArquitecturaDespliegue físico
- Todos los servidores salvo el de la aplicación de
encuestas de AIA que es un sistema Windows, usan
Ubuntu Linux 8.04.
- FRONT1 hosts
- Apache Web server
- Pool of Mongrel servers for users
- Dedicated Mongrel for admin
- Sphinx index search process
- Static content repository
- FRONT2 hosts
- Apache Web server
- Pool of Mongrel servers for users
- Sphinx index search process
- Static content repository (mounted)
- Additional Batch processes sponsor rotation,
create idea from email, update blog feeds
- DB Hosts
- Both hosts write and read from master db.
Contents in slave db are replicated from master
db and acts as a redundant passive system.
Database engine is MySQL 5.0.51a-3ubuntu5.
29Versión 3.2
- Web 2.0 Multiidioma la hemos liao parda
- Concepto
- Backoffice
- Usabilidad
- Rendimiento cachés
- Infraestructura de notificaciones/activity
feed - Rediseño de la home digg-like
- Rediseño de página de ver ideas
- Ideas relacionadas
- Tema del mes
- Promociones (y backoffice)
- Comentarios entre usuarios
- Activity Feed en la Home
30Versión 3.3
31Versión 3.3
- Nuevo diseño ver idea
- Ideas Relacionadas
- Activity Feed
- Comentarios a usuarios
32Site GlobalMultiidioma
- Paradigma similar a Youtube
- Complicado sistema de cachés
33Esfuerzo
- Equipo técnico
- Dos (3) desarrolladores
- Medio (1/2) diseñador
- Medio (1/2) administrador de sistemas
- Versión 3.3 ()
- 3 semanas
- Infraestructura notificaciones multiidioma (1.5
MH) - Actualmente 92 tablas, 50 ctrls, 123 modelos
34Qué hemos aprendido?Lo Bueno
- Caminar sobre las aguas y desarrollar programas
a partir de las especificaciones es fácil, si
ambas están congeladas. - Edward V. Berard
- Flexibilidad y velocidad
- A veces mejor construir desde cero con Rails que
integrar con otra tecnología - El prototipo es la especificación más formal
- Despliegues cómodos
- Calidad
- Pocas regresiones
- Sorprendentemente bajo número de bugs, se
corrigen en horas/minutos. - Bajo número de regresiones
- Evolutivo
- La tecnología (en buenas manos) ha dejado de ser
cuello de botella
35Qué hemos aprendido?Lo Malo
- Caminar sobre las aguas y desarrollar programas
a partir de las especificaciones es fácil, si
ambas están congeladas. - Edward V. Berard
- Relajación en metodología
- Te acostumbras a pensar en tiempos ridículos en
aceptación a la hora de planificar - Pierdes conciencia de riesgo.
- Gestión de expectativas
36The Concept
ideas4all es un Foro Mundial de ideas que ofrece
un Espacio Global Único de ideas que da respuesta
a problemas personales, locales y mundiales, así
como oportunidades de impulsar la innovación y el
intercambio y transferencia de conocimiento para
todos y desde todos.
37GRACIAS