Desarrollo de Sistemas ERP/CRM y Software Libre, Linux, Desarrollo de Proyectos, Programación OpenSource. Web

sábado, septiembre 23, 2006

Lo que XMLREG es y no es (y nunca sera)

Hoy asisti a la conferencia "La forma Canonica del Modelo de Objetos" impartida por Medardo R. en el Palacio de Computacion y a pesar de la poca asistencia, creo que fue genial, llegando a considerar que algo asi deberia darse en las carreras de Ciencias de la Computacion en las Universidades del pais (si es que en alguna no se esta dando ya).

El enfasis en la Teoria de la Informacion a lo largo de la conferencia era evidente, y como se que Medardo es un gran entusiasta del XML ya yo le he hablado de XMLREG y sus objetivos, siempre recomendandome de su parte que le eche un vistazo a RDF [1], no quedando claro en realidad Que es y que No es ni sera XMLREG para lo cual me gustaria comentarlos aqui.

Que es XMLREG?

XMLREG es un metodo (modelo) para almacenar informacion refente a configuraciones, definiciones simples, datos jerarquicos, basandose en XML y el modelo de objetos DOM, pero mucho mas sencillo, facil y menos engorroso.

Para esto XMLREG cuenta con 2 principales conceptos, el Contexto, que no es mas que el ambito de donde los datos son obtenidos formando una jerarquia de objetos de datos y el Elemento, componentes principales de esta jerarquia, los cuales son los que contienen la informacion como tal. Accesible mediante una nomenclatura de referencia o como propiedades basicas de los Elementos.

Originalmente XMLREG No esta diseñado para escritura de elementos, solo lectura, aunque se le han incorporado algunas facilidades para esto. O sea XMLREG es solamente un modelo de registro de datos con vista a proveer una manera simple de crear definiciones, configuraciones, etc.

Que No es XMLREG y nunca Sera?

XMLREG no pretende brindar un modelo de persistencia de datos ni objetos, ni de bases de datos para los cuales existen muchas variantes. Tampoco interesa describir recursos dispersos en redes de computadoras.

En general ningun tipo de uso derivado de interacciones lectura-escritura de datos o que impliquen persistencia.

Uso propuesto para XMLREG?

Definicion de funcionalidades, caracteristicas, sistemas, configuraciones, que generalmente tienen una estaticidad prolongada y estructura jerarquica.

Se ha desarrollado con el proposito de potenciar a bajo nivel el desarrollo de varias herramientas genericas de sistemas de gestion, entre gestion de datos, presentacion, generacion de reportes, etc.







lunes, septiembre 18, 2006

XMLREG v0.1.2 terminado, Comienza segunda etapa

Ya termine la codificacion de la primera version usable de XMLREG v0.1.2, en base a esta ya comenzamos la segunda etapa, la de la definicion de los modelos de datos.

Estos modelos cumpliran con las siguientes caracteristicas:
1. Independencia de Fuentes de Datos, podran usarse varios servidores de datos (PostgreSQL, MySQL, Firebird)
2. Extensibilidad de las funcionalidades de datos.
3. Interfaz simplificada de datos. con funcionalidades basicas
4. Mecanismos de salva y replicacion de datos

Otras caracteristicas podran ser adicionadas segun surja la necesidad y debidamente documentadas y comentadas aca.


martes, septiembre 12, 2006

XMLREG v0.1.0b

Haciendo un poco de esfuerzo ya que es mi primer trabajo con Python que pienso llevar a buen termino. Escribo la primera implementacion de XMLREG v0.1.0b, cuenta con algunas funcionalidades del modelo de registro y contiene 3 clases y 3 tipos de Excepciones.

De las 3 clases, una es el contexto de datos, basado en el sistema de ficheros y las otras dos son los elementos y conjuntos de elementos de los documentos XMLREG.

Aun carece de validacion mediante XMLREG Schema con todas las posibilidades que esto trae. Pero se incluye soporte para declaracion explicita de tipos y para varios tipos de datos (actualmente, int, float, boolean, date, time)

Esta disponible un changelog para ir teniendo idea de los cambios que se van haciendo y espero que para la version 0.1.6 ya este funcional y listo para ser usado en entornos productivos.

A falta de SVN o CVS publicos quedo limitado a proveer los ficheros a solicitud, por correo, solo escribame para notificarme su interes.

jueves, septiembre 07, 2006

Python me parece que No, Mono pase adelante

Recientemente comence a implementar el modelo de registro de datos XMLREG del cual ya les he comentado aca y sucede que como estoy intentando hacer un primer prototipo, utilice Python por la facilidad conque se pueden probar cosas sobre todo en la linea de comandos y me topo con una caracteristica de Python que me deja un tanto desilusionado a utilizarlo para XMLREG. El inconveniente es que no se pueden crear en Python (al menos hasta hoy) crear propiedades o metodos privados de clase, lo cual crea una seria deficiencia a la hora de definir la interfaz para poder interactuar con estos datos ya que parte de la misma incluye la definicion de tipos de solo lectura lo que no veo forma de implementar en Python.

Debido a esto recomence la implementacion utilizando Mono, en C# espero en unos dias terminar una primera beta de lo que seria una DLL para trabajo con XMLREG, que aunque seguramente le faltarian muchas caracteristicas del modelo ya seria usable para pruebas de concepto. Mas adelante hare los ports necesarios para Java, que aunque tenga sus consideraciones de Licencia, al parecer en unos meses ya podremos contar con un JVM (HotSpot) libre.

martes, septiembre 05, 2006

Compiz y Xgl en Ubuntu

Siempre crei que era muy dificil instalar estos fenomenales paquetes pero he encontrado un pequeño tutorial donde me muestran en 5 pasos como hacerlo.

Resultado: Tengo Xgl instalado y funcionando en mi maquina de maravillas. Cabe decir que tengo video on-board de Intel 815 (si mal no recuerdo) y aunque funciona un poco lento, todo funciona correctamente. Hoy lo probare en la casa, alla tengo una ATI RADEON 7000 con 64Mb de video, espero que funcione mas rapido.

lunes, septiembre 04, 2006

Hoy se cumple un año

Hoy se cumple un año de postear en este blog, que sinceramente espero haya sido de utilidad para inculcar la idea del software libre en la comunidad de desarrolladores de sistemas de gestion empresarial. Y espero poder seguir contribuyendo modestamente en el esfuerzo de contar con mejores sistemas, libres y sobre todo cubanos.

A todos los que alguna vez leyeron este blog, Gracias.

2+2 en todos los tiempos

Me gustaria ilustrar mi punto de vista sobre el desarrollo del software a lo largo de estos años desde la vision de un programa para calcular 2+2

Las primeras computadoras se programaban con cableado para poder realizar la operacion de calculo y obtener el resultado, 4.

Despues ya se podia en un programa guardado en cinta o tarjetas perforadas guardar la operacion (2+2) y correr el programa y obtener el resultado 4.

Posteriormente aprovechando las posibilidades de los nuevos lenguajes de programacion se pudo crear un programa donde los terminos de la suma se introducian en tiempo de ejecucion, quedando el programa en A+B y donde uno si queria calcular 2+2 solo tenia que introducir estos terminos y obtener el resultado 4.

A lo que le sigue una innumerable cantidad de formas de especificar los terminos, ya sea en interfaces Web, de escritorio, ventanas, documentos XML, bases de datos, etc. etc. y con la posibilidad tambien de que el resultado almacenarlo, visualizarlo de mil maneras, enviarlo por correo, etc. Aun teniendo la dificultad de que solo podemos calcular A+B.

Mi reflexion es: Porque todavia estamos atados a la logica del negocio codificada fuertemente en el programa al nivel de lineas de codigo? No es tiempo ya de que podamos programar a un nivel mayor de abstraccion?

En mi opinion, parte del costo elevado del desarrollo de aplicaciones es la unidad atomica de composicion de sistemas, "Las lineas de codigo" que visto metaforicamente equivalen a construir una casa a partir solo de arena.

La gran cantidad de estandares impuestos, propuestos y en desarrollo nos debieran permitir la creacion de sistemas a un nivel mayor de abstraccion.

Datos personales

Licenciado en Ciencias de la Computacion, Facultad de Matematicas y Computacion, Universidad de la Habana, 2004. Telefono: 45-3619, Cel: 282-8661