Blog de Israel Viana

MagiSQL ha muerto

7 de agosto de 2009

Hace cerca de un año que comencé un proyecto llamado MagiSQL, con el objetivo de crear una herramienta modular de gestión de bases de datos relacionales, compatible con múltiples sistemas de BBDD y con licencia libre, por supuesto.

Me he planteado muchas veces la viabilidad y utilidad del proyecto, ya que la competencia es muy dura (phpMyAdmin, pgAdmin, Oracle Enterprise Manager, etc etc etc) y exige reinventar la rueda en la mayoría de los módulos. Además, para que el proyecto fuese exitoso no sólo era necesario que me dejase los ojos durante muchas horas, sino que más programadores se sumasen al proyecto y desarrollasen módulos compatibles con los sistemas gestores de bases de datos, ya que yo no tengo tiempo ni medios para hacer MagiSQL compatible con Oracle, MS-SQL Server, PostgreSQL, MySQL y DB2, como está planteado en los objetivos del proyecto (de momento sólo funcionaba con MySQL). Además, este verano he reescrito por completo el núcleo, lo que ha retrasado y complicado aún más el desarrollo.

Por estos motivos y muchos otros (baja productividad, falta de tiempo y concentración, cuestiones personales...) he decidido no continuar el proyecto. Nunca ha alcanzado un nivel de madurez mínimo como para ser usable, y la gran parafernalia de módulos, clases y patrones hace bastante inútil el código que hay en mi disco duro y en el SVN de Sourceforge. En resumen, que se irá todo a la basura.

¿Todo? Eso significaría tiempo perdido, derrota, fracaso. Y aunque no deja de serlo, es un fracaso del que estoy orgulloso y del que he aprendido un montón, entre otras cosas:

  • He ideado el patrón de diseño "Application Status", del que tendréis más noticias dentro de algún tiempo... ;-)
  • Me he acostumbrado a escribir documentación en línea (phpDoc) y en inglés.
  • Me he familiarizado con la biblioteca AdoDB.
  • Me he hartado de Smarty. Era el último proyecto en el que lo usaba, y desde ahora sólo utilizaré plantillas PHP.
  • He aprendido más cosas sobre la reescritura de URL y expresiones regulares.
  • He comprendido e implementado multitud de patrones.
  • Me he familiarizado con las excepciones de PHP y los métodos mágicos.
  • He explotado las novedades de PHP 5.3.
  • He encontrado un buen entorno de programación en PHP sobre Linux (Netbeans, KCacheGrind, etc).
  • Me he convencido una vez más de que reinventar la rueda es friki, divertido pero inútil y bastante frustrante.
  • He escuchado cientos de discos mientras hacía todo eso ;-)

Bueno ¿y ahora, qué? Ya que el proyecto era para una asignatura de la carrera (aprovecho para decir que, tras pasar al Grado en Informática en la UCAM, he tenido que volver a matricularme de una asignatura que ya tenía aprobada), será sustituido por un motor de almacenamiento en MySQL para Object Freezer. Object Freezer es una biblioteca escrita por Sebastian Bergmann para almacenar objetos en la base de datos CouchDB sin preocuparse de SQL, DAO y demás inventos del pasado ;-)

PD: perdón por saltarme la canción del lunes, no tengo mucho tiempo últimamente para postear, pero os he dejado un regalito en twitter ;-)


Compartir en Twine Delicious Facebook Twitter

4 comentarios

Gravatar de Oscar
Oscar
el 7 de agosto de 2009 a las 13:06

Esa es la actitud que debes tener.
De fracaso nada, creo firmemente en el "Learning by doing" y eso te acerca más al éxito, si no con magisql será con otra cosa.

Como decía Thomas J. Watson Sr. (Fundador de IBM):

The fastest way to succeed is to double your failure rate

Ánimo y un saludo

Gravatar de Walter
Walter
el 7 de agosto de 2009 a las 14:12

Hola Israel, los fracasos son parte del buen profesional, ¿Perdiste tiempo?, no lo creo. Yo lo pensaria de esta manera, ganaste arpendizaje ,tambien en lo personal. Seguramente en un próximo proyectos no te tropesaras con la misma piedra. Mucha Suerte. Segui Adelante. Cordiales Saludos.

Gravatar de Samuel
Samuel
el 13 de agosto de 2009 a las 08:57

Aunque supongo que ya lo habrás leido:

* 1816: Su familia fue forzada a salir de su hogar, a la edad de 7 años tuvo que empezar a trabajar para ayudar con los gastos.
* 1818: Su madre murió.
* 1831: Fracasó en todos los negocios que emprendió.
* 1832: Compitió para la Legislatura estatal y perdió. También perdió su trabajo y fue rechazado para entrar a la escuela de leyes.
* 1833: Pidió prestado un dinero para empezar un negocio, fracasó y gastó 17 años de su vida para pagar la deuda.
* 1834: Volvió a competir para la legislatura estatal y ganó.
* 1835: Se comprometió en matrimonio, su novia murió.
* 1836: Tuvo una crisis nerviosa y estuvo en cama por 6 meses.
* 1838: Compitió para presidente de la cámara estatal y otra vez fue derrotado.
* 1840: Se postuló para gobernador y fue derrotado.
* 1843: Compitió para el congreso federal, y perdió.
* 1846: Se postuló de nuevo para el congreso federal y ganó.
* 1848: Compitió en la reelección del congreso, y volvió a perder.
* 1849: Se postuló para Oficial estatal y fue rechazado.
* 1854: Compitió para senador y volvió a perder.
* 1856: Buscó la nominación a la vicepresidencia y obtuvo la ridícula suma de menos de 100 votos.
* 1858: Compitió de nuevo para senador, y ¿qué creen?... volvió a perder.
* 1860: Fue elegido presidente de su país en las elecciones del 6 de noviembre.

El personaje es Abraham Lincoln, quizás el presidente más querido y recordado en la historia de su país. ;-)

Un abrazo Isra!

Gravatar de Isra
Isra
el 17 de agosto de 2009 a las 19:50

Jeje qué filosófico Samu! Gracias por los ánimos, a ti y a los demás. MagiSQL nació con mucha prepotencia y, pensando en el software libre es mejor hacer un fork o un par de plugins para phpMyAdmin.

Con suerte, el siguiente proyecto será más útil a la sociedad (a la de programadores PHP me refiero :-P). En muy poco postearé al respecto ;-)


Escribe tu opinión

Nombre:
E-mail: (no se mostrará)
Sitio web:
Por favor, suma 3 + 2:
Comentario:
israelviana.es es propiedad de Israel Viana, escrito en Murcia (España). Puedes ponerte en contacto conmigo a través de la dirección de e-mail .com.
Información en RDF Metadatos Dublin Core Creative Commons License