Etiquetas

,

Aprovechando que en el apunte anterior que hablé de MobuzzTV, de que es un tema “caliente” en la blogocosa, de las dificultades de empezar proyectos, y que además se cumple casi un año desde que comencé a parir la idea, quería comentar el caso de un “fracaso” personal que no pude llevar a cabo por falta de tiempo, recursos, financiación y/o fallos en vender la idea.

Bueno, también hay otra razón para escribir esta historia. Hace tres horas me quitaron una muela del juicio, tengo la cara hinchada, no puedo hablar demasiado, casi no puedo comer nada, y no me quiero acostar para pringar de sangre las sábanas.

Más o menos en noviembre del 2007 se me ocurrió la idea de tener una interfaz en “tiempo real” –similar a la fisgona del Menéame– pero donde puedas seguir en tiempo real toda la actividad y contenido generado por tus amigos en las distintas plataformas –Facebook, Twitter, Twitxer, Flickr, RSS de blogs, etc.– usando el API de cada una de ellas y RSSs cuando están disponibles.

Además el sistema permitiría definir “canales de chat” (paneles), e integrar widgets en sitios externos, por ejemplo para transmisión de eventos o entrevistas en tiempo real donde se pudiesen insertar –además del texto– imágenes, vídeos, etc. Esta última parte hubiese sido la que daría ingresos, cualquier otra empresa que quisiese usarlo en su propio sitio debería pagar una pequeña cuota mensual o anual.

La idea era que fuese un “proyecto global”, no sólo para el mercado hispano. Por ello sabía que el principal problema era que debía montar sobre una plataforma que permitiese escalar rápidamente. Debía comenzar con algo de muy bajo coste y luego incrementar la infraestructura sólo si había demanda. Pensaba en hacerlo en Amazon EC2 a la que había empezado a estudiar y probar, pero para ello tenía que resolver el problema de la replicación y/o particionado de la base de datos, nada sencilo.

También tenía otros problemas, el proyecto requería mi dedicación a tiempo completo, por lo que debía dejar la universidad. Además necesitabamos unos pocos programadores muy buenos que sean capaces de desarrollarlo y adaptarlo muy rápidamente.

Al final no lo podía hacer sólo y en un “garage”, por lo que empecé a contar esta idea a varios conocidos con la esperanza de conseguir la financiación para que sea viable. Uno de los que hablé fue Martin Varsavsky. Al principio no entendía bien la idea ni el modelo de negocio. Pero después de un largo intercambio de emails quedamos en reunirnos en Madrid y hablar del tema.

Mientras tanto seguí pensando y “dibujando” como sería la arquitectura básica y el modelo de datos, le llamé mi segundo vaporware (así había llamado al Menéame cuando comencé a programarlo a finales de noviembre de 2005).

El día 7 de febrero nos reunimos con Martín Varsavsky donde le aclaramos la idea y que necesitaríamos entre 500.000 y 1.000.000 de euros para asegurar el desarrollo y funcionar por un par de años sin ingresos.

Martín no estaba demasiado convencido. Nos dijo que eso para España era demasiado dinero y que sólo se podría recuperar si se convertía en un wild success, pero que él lo veía más como una aplicación de nicho. Por lo tanto decidimos que lo desarrollaríamos poco a poco y como un spin off de Menéame. Así fue que lo reconvertimos en el vaporcito.

En eso estábamos cuando el 25 de febrero sale en Techcrunch la noticia de que FriendFeed había conseguido 5 millones de financiación y se abría al público después de estar varios meses en beta privada. Ya me habían dicho que quizás la idea era similar, así que me doy de alta y veo ¡que era casi lo mismo!, pero más avanzada y funcionando. Aunque por aquellas épocas FriendFeed tenía muy poca cosa, no tenía todavía los “rooms” (similar a los paneles de mi idea), ni tampoco una interfaz donde se pudiese hablar en tiempo real (desde hace pocas semanas tiene una opción similar).

Aunque fue un golpe duro, y a pesar de que estaba siendo desarrollado por ex ingenieros de Google con un mogollón de dinero, creía que la idea todavía tenía algunas diferencias importantes.

Así fue que a principios de abril Google hace público el Gogle App Engine. Pensé, ¡ostia! con esto podría desarrollar sin preocuparme de la escalabilidad de la base de datos y de los costes. Podría reducir costes al mínimo y quizás era viable. Me puse a probarlo en modo local, prometía. Además era muy similar al Django que pensaba usar para desarrollarlo.

Pedí una cuenta de acceso inmediatamente para ver si podía desarrollar un mockup para el Techtalk en Menorca, pero ya estaba cerrada y con una cola larga. Así que me puse a desarrollar pero sólo en modo local y con la primera versión del SDK. En local ya era cutre porque no se puede probar que el modelo de datos sea adecuado para las BigTable reales ni probar los tiempos de latencias y consultas complejas, pero para empeorarlo todavía no tenía soporte para el tratamiento de imágenes (fundamental para una aplicación de este tipo). Igualmente me sirvió para aprender y hacer pruebas básicas, y ya sabía que iban a agregar muchas características nuevas, como la de soporte de ImageMagick

La idea era intentar mostrarla en la Menorca Techtalk –comenzaba el 9 de mayo– donde vería otra vez a Martín. Pero no fue hasta el 6 de mayo que recibí la aceptación:

from appengine.noreply@google.x
to gallir@gmail.x
date Tue, May 6, 2008 at 4:38 PM
subject Invitation to try Google App Engine

Hello,

Thanks for signing up to try Google App Engine!  Your account has been activated, so you can begin building applications!

To start creating applications with Google App Engine, simply follow this link (you may need to sign in with your gallir@gmail.x Google Account):

http://appengine.google.com/

Thanks!
The Google App Engine Team

Esos tres días me puse a programar como loco para tener algo en marcha y estable. El día 7 de mayo ya funcionaba razonablemente estable. Me ilusionó bastante, demasiado, así escribí ese día  PanelR: we will rock you, or not… Era el proyecto con el que estaba obsesionado.

Pero no lo he podido vender, y FriendFeed mejoró a pasos agigantados agregando nuevos servicios casi cada día. Así que después de intentar “igualarlo” progamando yo sólo me di cuenta que ya no tenía sentido y lo abandoné.

Aquí está el mockup

El PanelR con unos pocos RSSs y Twitxr

El PanelR con unos pocos RSSs y Twitxr

Está disponible la versión on-line que mostré en Menorca en panelr.com. Ahora puede entrar cualquiera que tenga una cuenta en Google. Si a alguien le interesa mirar el código de esta versión, aquí está disponible el tgz con todo el código fuente (el anterior está desconectado hoy por mantenimiento, copia temporal en Menéame)

No me déis mucha caña🙂, sin contar el tiempo dedicado a aprender, estuadiar documentación, ver ejemplos, descubrir los problemas y solucionarlos (como los límites de CPU y tiempo de cada script y consulta a la base de datos), no debe haber más de unos pocos días netos de programación.

Moralejas que aprendí o confirmé

  1. Que tener ideas es sencillo, ponerlas en marcha es complicado.
  2. Que ideas similares surgen en varios sitios más o menos simultáneamente.
  3. Que me hubiese sido imposible conseguir 500.000 euros, en California consiguieron 5 millones sin casi problemas.
  4. Que yo no soy un ex-ingeniero de Google, tampoco hay un Google por aquí, eso marca diferencias.
  5. Que conseguir programadores para una emprendimiento de este tipo es muy complicado aquí –se busca estabilidad antes que arriesgar con proyectos nuevos, está casi mal visto cambiar–, es muy habitual en EEUU.
  6. Que puedes tener las mismas ideas que allí, pero Silicon Valley es irrepetible en otro lugar del mundo.
  7. Que en España –quizás también en Europa– es muy pero que muy difícil comenzar un proyecto técnicamente arriesgado y que necesite tantos recursos iniciales sin estar muy seguro del “modelo de negocios”. FriendFeed tiene una buena financiación y ya lleva un año sin modelo de negocio conocido –ni siquiera publicidad– (allí no pasa nada, aquí varios me hubiesen tratado de cantamañanas o charlatán),
  8. Que los proyectos abortados es lo habitual, muy pocas veces das en la diana en el momento y tiempo adecuado.
  9. Python es un gran lenguaje, le quedan muchos años (no entiendo cómo hay gente que todavía usa Java🙂 ),  y el GAE está muy bien diseñado y montado –no en vano Guido van Rossum está en el grupo–.
  10. Que “baja latencia” en una base de datos distribuidas no tiene nada que ver con una baja latencia de una base de datos “centralizada” como MySQL.
  11. Que el modelo relacional no tiene futuro en bases de datos distribuidas, que afortunadamente el modelo de datos de GAE (similar al de Django, pero con algunas mejoras interesantes) hace que sea más tratable.
  12. Que en realidad esto no llegó ni a un “fracaso”, que tampoco pasa nada. Me entristeció y me dio un poco de envidia y “rencor” unos pocos días, luego lo recuerdo como una buena experiencia y aprendizaje (además podría reciclar cierto código e ideas para ponerlo en la fisgona del Menéame como “servicios personales” adicionales).
  13. Que programar es tan divertido como absorbente y agotador. Pero es preferible ese agotamiento a que te saquen una muela del juicio🙂