Seguramente todos los que habitualmente leéis este blog, sabréis que trabajo como desarrollador en el proyecto eyeOS, pero la mayoría no sabréis mucho mas que esto sobre el proyecto.
Algunos, habréis entrado a mirar a la demo que tenemos, otros habréis visitado la página del proyecto, o incluso alguno, se habrá bajado el código, sin embargo, muy pocos conocerán la historia que se esconde detrás de este proyecto español…
eyeOS es un proyecto de software libre, que desarrolla un escritorio virtual online, o también conocido como webtop, además de un conjunto de apis y librerías del sistema, para desarrollar aplicaciones dentro del webtop, con una arquitectura definida, eso es lo que es en la actualidad, pero lo interesante que quiero abordar en este post, es como ha llegado a eso, y como ha sido la vida del proyecto y la gente que lo rodea.
eyeOS nació en Olesa de Montserrat, un pequeño pueblo de los alrededores de Barcelona, en el cual, Pau Garcia-Milà tubo la idea de crear una web, que realmente fuese un escritorio, en el cual tu pudieses acceder a tus documentos, siempre y cuando, tuvieses acceso a la web. Por aquel entonces, Pau era un joven de 16 o 17 años, estudiante, con muchas ideas en la cabeza, y que programaba pequeñas cosas en sus ratos libres.
Empezó a darle vueltas a la idea, y al poco tiempo estaba trabajando, creando la que sería la primera versión de eyeOS, escogió programarlo en PHP (por aquel entonces, PHP4), al poco tiempo, se le unieron David Plaza y Marc Cercós, ambos diseñadores gráficos de Olesa.
El día 31 Julio del 2005, vio la luz la primera versión de eyeOS, numerada como 0.6.0.
eyeOS 0.6.0
Técnicamente esta versión era muy, pero que muy limitada, no podía ejecutar mas de una aplicación a la vez, no tenía ningún tipo de API unificada ni nada, sin embargo, lo que para unos eran unos cuantos centenares de lineas en PHP y XHTML, para muchos otros, era el principio de una idea que cambiaría la forma que tenemos de ver la informática… el tiempo, como veremos mas adelante, le dió la razón a uno de los dos…
Un detalle curioso de la 0.6.0 es que no tenía instalador, venía con usuario root, y password ‘r’ por defecto, había que entrar y cambiarla en primer inicio de sessión.
En esta primera versión, el trabajo de desarrollo, fue completamente de Pau, ya que no había ningún otro programador relacionado con el proyecto, y el trabajo de diseño gráfico, era básicamente de David Plaza, ya que Marc, aún estaba aprendiendo.
La licencia, fue desde el primer momento GPL, una de las cosas que Pau siempre tubo claras, es que eyeOS sería libre, no se bien bien por que, pero nunca tubo ningún tipo de duda entorno a esto, al final, los acontecimientos le demostraron que estaba en lo correcto.
Continuaron saliendo revisiones con arreglos, de eyeOS 0.6.0, hasta el 15 de agosto del mismo año, que vio la luz la versión 0.7.0:
eyeOS 0.7.0
Esta versión era básicamente una 0.6.0 mejorada, las ventanas tenían ya por fin botones minimizar y maximizar, y se podían redimensionar usando la esquina inferior derecha. En general, durante todo este tiempo, eyeOS no fue cambiando mucho, solo se iban agregando cosas pequeñas.
Y no fue hasta el 6 de septiembre del mismo año, que las cosas empezaron a cambiar…apareció la versión 0.8 del proyecto, por primera vez, con colaboración de un programador externo, que decidió colaborar altruistamente, Antoni Segura.
Otro programador externo, que empezaba a mirar el proyecto, a opinar y que posteriormente, colaboraría muy activamente, programando partes muy importantes del sistema, fue Hans B. Pufal, un francés informático de la vieja escuela, con experiencia en proyectos de software libre tan variados como NetBSD y GNU Tar.
Esta nueva versión incluía por fin, un instalador, en lugar de una contraseña de root por defecto, además, era posible abrir mas de una aplicación a la vez, aunque cada vez que abrías una aplicación nueva, se recargaban todas, pero era un principio.
eyeOS 0.8.0
Por aquel entonces, Marc continuaba aprendiendo, y poco a poco, iría tomando mas protagonismo en el proyecto, como diseñador principal, aunque de momento, el diseñador principal era David Plaza.
La versión 0.8.x de eyeOS, vivió durante mucho tiempo, hasta abril del 2006, con continuas versiones de revisión, mejoras etc, como por ejemplo la 0.8.8 donde se agregaron muchísimas mejoras técnicas y visuales.
eyeOS 0.8.8
Durante todas estas revisiones y versiones de eyeOS 0.8.0, se fueron agregando traducciones del sistema, manuales, documentación, etc, y así, poco a poco, pasó de ser una idea, a ser un proyecto de software libre, o al menos, a empezar a serlo, pues a aun le quedaba un largo camino por delante.
El día 8 de Junio del 2006, vio la luz la versión 0.9.0 de eyeOS, con Hans colaborando de forma muy activa, programando colaborativamente con Pau, y Marc cada vez mas inmerso en el diseño de eyeOS, tomando mas y mas responsabilidades y encaminándose a ser el diseñador gráfico principal del proyecto.
eyeOS 0.9
Esta versión incluia ya un gestor de ficheros mucho mas avanzado que las anteriores, una emulación de multitarea mucho mas elaborada, y por primer vez, se incluía el editor WYSIWYG Tinymce como editor de texto del sistema.
Mas o menos por estas fechas conocí yo el proyecto, en una primera impresión me pareció increíble, pero al ver el código me desanimé bastante, era ciertamente, muy malo. Estuve varios días debatiéndome entre ayudar al proyecto o no, y finalmente, me decidí a auditarlo.
Empecé a sacarle agujeros de seguridad, que reportaba a Pau por correo, y así empezamos a entablar cierta amistad, en una extraña relación, nunca nos habíamos visto, aunque ambos vivíamos en los alrededores de Barcelona, pero hablábamos bastante, yo le reportaba agujeros de seguridad, el los arreglaba…y así estuvimos bastante tiempo.
Mientras tanto, iban apareciendo revisiones de la versión 0.9, cada vez mas y mas elaboradas.
eyeOS 0.9.3
Las mejoras entre versión y versión eran abrumadoras, cada vez estaba todo mas documentado, mejor organizado, y el sistema era mas bonito, sin embargo, la base sobre la que todo estaba montada, era un código muy malo, una prueba, un experimento que había ido a mas y mas, y que cada vez, era mas difícil sostener.
Durante todos estos meses, yo reportaba muchísimos agujeros de seguridad a Pau, todos consecuencia de la mala (o inexistente arquitectura del sistema), pero sin embargo fui cogiendo perspectiva, y entendiendo que lo que habían hecho Pau, y Hans tenía muchísimo merito, que no se trataba del nivel técnico del proyecto, ya que eso se podía arreglar, sino de como habían ido dando forma a una idea en la que mucha gente no creía por aquel entonces, y la habían hecho realidad.
Y fue alrededor de esos últimos días del 2006, que iban saliendo revisiones de 0.9, en los que fuí a Olesa por primera vez, y conocí a Pau (ese día aún no conocería a Marc ni a David Plaza).
Esa tarde Pau me habló de muchas cosas, pero yo llevaba una idea en la cabeza…había comprendido que eyeOS era una buena idea, y quería empezarlo todo de 0, con una buena arquitectura ,bien planteado, y bien programado, sin embargo, me parecía muy fuerte ir a su pueblo, a decirle que quería tirarlo todo a la basura, y empezar de 0, sin embargo lo hice, se lo dije, y Pau sorprendentemente, me dijo que estaba de acuerdo.
Ese seguramente fue uno de los momentos mas críticos de la historia del proyecto, si Pau me hubiese dicho que no, había pensado hacerlo por mi cuenta, y sabe dios como hubiesen sido las cosas entonces…
Tras la charla con Pau, estaba claro que se iba a rehacer eyeOS, y no se iba a aprovechar nada, yo ya estaba decidido a unirme al proyecto activamente, sin embargo, enseguida vi que dos programadores y dos diseñadores gráficos, seríamos pocos para crear lo que tenía en la cabeza…así que Pau contactó con un compañero suyo de la universidad, Daniel Gil, que se unió al proyecto como programador, aunque su experiencia programando era muy pequeña.
Yo hablé con mi amigo Alejandro Fiestas (actualmente desarrollador de KDE en su tiempo libre), y le propuse mi idea, y finalmente, accedió a unirse al proyecto.
Eramos ya 4 programadores, con lo que no conté es que Pau no era un entusiasta de la programación, mas bien era un visionario, alguién con mucha visión de futuro, pero poco técnico. Dani tampoco era muy técnico, y Alex si lo era, pero no tenía experiencia en PHP, la cosa no pintaba bien.
Me encerré en mi habitación durante meses (casi literalmente) y senté las bases del nuevo eyeOS, al que llamaríamos 1.0. Un sistema microkernel con módulos cargados bajo demanda, de forma transparente, donde las aplicaciones son en PHP, y dibujan sus interfaces gráficas usando Widgets (al estilo Qt o Gtk), que son clases PHP con su representación DHTML. Además diseñe un sistema de message/response para comunicar las interfaces gráficas con el sistema.
Una vez hecho todo esto, fuimos entre los 4 programando muchas partes del sistema.
Una anécdota curiosa es que la primera aplicación que se ejecutó con éxito en un eyeOS 1.0, fue un Solitario (el juego de cartas), era una prueba, que nunca vería la luz.
Durante aquellos meses, desarrollábamos en un SVN privado, para no romper la sorpresa, ya que el SVN de sourceforge, es abierto.
Mientras estábamos inmersos en el desarrollo de 1.0, en un ambiente de secretismo, en la comunidad de eyeOS empezaban a pensar que el proyecto había muerto, mucha gente hablaba del final de eyeOS.
Y finalmente, muy poco antes de sacar la nueva versión, echa desde 0, sucedió la segunda situación crítica para el proyecto, Marc se situó como líder de diseño de eyeOS, y David Plaza, acabó dejando el proyecto, al verse sustituido. A partir de ese día, todo el diseño e imagen de eyeOS, han sido fruto del trabajo e imaginación de Marc.
El día 4 de junio del 2007 eyeOS 1.0 fue publicado:
eyeOS 1.0
La noticia fue un boom en internet, el blog de Richard MacManus, ReadWriteWeb, publicó la noticia del lanzamiento, la cual llego a la portada de digg, con 1132 votos.
Sin embargo, poco después del gran día, eyeOS sufrió otro revés, Eduardo Perez, que había hecho las veces de asesor para convertir el proyecto en un producto maduro, desde la perspectiva empresarial, decidió dejar el proyecto, y dado que siempre estaba viajando, yo nunca tuve el placer de conocerle, aunque se que fue una de las personas mas importantes para el proyecto, en la época de las versiones 0.x.
Y esto empezaba a convertirse en una leyenda negra que se cernía como eyeOS, el pequeño equipo del proyecto, entre David Plaza y Eduardo Perez, ya había sufrido dos bajas a causa de la versión 1.0, lo cual me llevó a preguntarme si estaba haciendo bien las cosas, pero finalmente imagino que fueron casualidades.
Además, Hans B. Pufal se había alejado del proyecto, ya que no participó en el desarrollo de 1.0, y finalmente, acabó estando fuera completamente.
Tanta gente dejando el proyecto y una nueva versión completamente reescrita de 0, estaban creando un clima en el proyecto, en el que todos intuíamos que una nueva época estaba empezando alrededor de eyeOS, aunque aún no sabíamos cuan grande sería el cambio.
Durante 2007 fuimos sacando versiones, mejoras muy variadas, nuevas aplicaciones, mas velocidad en el sistema etc..
eyeOS 1.5
Durante el 2007, eyeOS mejoró muchísimo, Marc cada vez iba siendo mas profesional, creando diseños muy elaborados y completos, Dani iba adquiriendo experiencia en PHP y empezaba a crear aplicaciones complejas en el sistema, Alex era ya todo un “hacker” de Javascript y PHP, habiendo creado el calendario de eyeOS, el cual todavía mantiene, entre otras muchas cosas.
Yo había progresado mucho técnicamente, pero además, había aprendido que no existe la arquitectura perfecta, eyeOS 1.x era una versión perfecta, pero veía que siempre podía ser mejor, que siempre podía hacerlo mejor…veía que era el cuento sin final, esto me cambió mucho profesionalmente y como persona, aprendí a aceptar un nivel de calidad determinado, y dejé de perseguir la perfección, fue entonces cuando comprendí lo que Pau sentía de su anterior sistema eyeOS 0.x, que por mucho que te esfuerces, siempre puede ser mejor.
Con tanto cambio, Pau cada vez programaba menos, hasta que alrededor de eyeOS 1.5 o un poco antes, ya no programaba nada, y empezó a hacer otras cosas, a ser la cara pública del proyecto, a dar conferencias etc.
Durante ese tiempo, eyeOS se formó como empresa con Pau, Marc, Alex, Dani y Yo como fundadores, y empezó a ofrecer servicios de pago, adaptaciones, desarrollos a medida, instalaciones, etc.
Pronto empezamos a crecer, y tener empleados, y en la actualidad, después de toda esta historia, yo dirijo el departamento técnico, donde desarrollamos soluciones profesionales para terceros, Alex dirige la comunidad y el proyecto de software libre, Dani dirige el departamento de soporte y las comunicaciones con los clientes, Marc el departamento de diseño, y Pau es una mezcla entre presales y director general adjunto.
Durante 2008 se nos unió Pol Watine, un francés con muchísima experiencia en el sector de internet y empresas, que nos ayudó a crear, organizar y hacer funcionar la empresa, y nos enseñó muchísimas cosas sobre startups, actualmente es parte del equipo fundador.
Dentro de poco saldrá la nueva versión de eyeOS, 1.8.5 fruto de muchísimo trabajo por parte de todo el equipo:
eyeOS 1.8.5
Creo que es bueno reflexionar y ver que detrás de proyectos y empresas de software, existen personas, aventuras, ideas que en su día parecieron locuras, sueños…y que todo eso se junta de alguna forma mágica, y si se dan una serie de casualidades, si todo sucede en el orden exacto, el proyecto prospera, y que si solo una de esas cosas falla, todo se derrumba, sin embargo existe un tipo de persona especial, como Pau, que es capaz de quedarse en los peores momentos, y levantar la moral a todo el mundo. Ese tipo de personas, marcan la diferencia entre el éxito y el fracaso.
Estoy orgulloso de lo que he hecho en eyeOS, pero mucho mas de trabajar con gente como Pau, Alex o Marc, que en la actualidad, y después de tanta aventura, son grandísimos profesionales.
Quería explicar muchísimo mas, pero el artículo es demasiado largo ya, y me he dejado por el camino, olvidados a muchísima gente que ha sido importante para eyeOS, pero es imposible nombrarlos a todos aquí, la historia de eyeOS es demasiado larga para un artículo de mi blog 🙂
Me he olvidado de contar la historia de Lars, un alemán que desde los 15 años se fascinó por eyeOS y empezó a programar para el, de forma completamente increíble para su edad, o de Matthew Powel, o de Daniel Sousa, o de todos los empleados que hacen crecer a eyeOS día a día, pero si os interesa conocer realmente eyeOS, lo mejor es que os unáis y participéis en la comunidad, o en sus foros.
eyeOS continua progresando, stay tuned!