jueves, agosto 15, 2013

Herramienta de extracción de registros desde ISOS2709 creados con CDS/Isis

CDS/ISIS no es más que un software de gestión de bases de datos documental que corre sobre MSDOS, destinado a ser usado con normas MARC o similares. En la Biblioteca Nacional de Cuba es aún extensamente empleado en el trabajo diario, pero el mismo solo es entendible por profesionales en el tema, algo que dificultaba bastante la búsqueda por los usuarios normales.

Para ello se decidió crear un interfaz web que permitiera hacer búsqueda en la información almacenada por CDS/ISIS, pero este último almacena los datos en estructuras complejas y no estándares, lo cual dificulta bastante la extracción o consultar desde lo sistemas modernos, por lo que se llevó a cabo una trasformación de los datos al sistema de bases de datos MySQL, el que luego fue cambiado por PostgreSQL por ser más escalable y con un rendimiento muy superior.

Todo este proceso se ve bastante afectado por el hecho de que CDS/ISIS no es capaz de exportar un ISO2709 estándar y con una coherencia en el rango de los aceptable. Para ello construí esta herramienta en PHP5 la cual permite efectuar la extracción de los datos desde dicho ISO a un arreglo de PHP el cual luego puede ser almacenado en una base de datos.

La misma se encuentra disponible en
https://github.com/carlossosa/IsisIso2709.

miércoles, agosto 14, 2013

Usar el operador no estándar de PostgreSQL en Symfony 2.3

Hola a todos voy a estrenar mi Blog con un video-tutorial.

Para todo aquellos que empiezan a usar PostgreSQL y vienen de MySQL se encuentran con la dura verdad que LIKE no es "case-insensitive", ni distingue en tildes. Para ello PostgreSQL nos propone un operador "case-insensitive" no estándar el ILIKE, que es más como una extensión. Claro al no ser estándar Doctrine no lo ofrece para poder mantener su portabilidad entre las diferentes ORM.

Para ello yo comparto un patch aplicable a la versión 2.3.3 de Symfony con el que podrán hacer uso del operador ILIKE en las consultas.

Aquí pongo un vídeo de como aplicar el patch usando Netbeans 7.3 y luego como hacer una consulta empleando ILIKE.


En este enlace podrán descargar el archivo diff.